Entonces, continuando con mi resolución de año nuevo para entrar más en TDD, ahora estoy comenzando a trabajar más con Rhino Mocks .
Una cosa que estoy dispuesto a hacer es asegurarme de que realmente asimilo lo que estoy haciendo, así que quería comprobar mi comprensión de lo que he visto hasta ahora (y pensé que sería bueno publicarlo aquí como un recurso).
¿Qué es un "Stub"?
unit-testing
testing
tdd
stub
Rob Cooper
fuente
fuente
Respuestas:
Martin Fowler escribió un excelente artículo sobre este tema. De ese artículo:
Para decirlo con mis propias palabras: los objetos simulados "esperan" que se invoquen ciertos métodos y, por lo general, hacen que una prueba unitaria falle si no se cumplen sus expectativas. Los objetos stub proporcionan respuestas predefinidas (y las bibliotecas auxiliares pueden generarlas automáticamente), pero normalmente no provocan directamente que falle la prueba unitaria. Por lo general, solo se usan para que el objeto que está probando obtenga los datos que necesita para hacer su trabajo.
fuente
Un "stub" es una implementación de una interfaz que existe para proporcionar datos / una respuesta de algún tipo. Por ejemplo:
Normalmente, esto lo proporcionaría otro servicio (ya sea un servicio web, otra aplicación, una base de datos), pero para mejorar la capacidad de prueba del código, los resultados son "falsos".
Un beneficio importante de esto es que permite hacer afirmaciones en pruebas unitarias basadas en los datos esperados. Si surgen errores debido a errores de datos, entonces se pueden agregar pruebas fácilmente, crear un nuevo stub (replicando el error de datos) y producir un código para corregir el error.
Los stubs se diferencian de los Mocks en que se utilizan para representar y probar el estado de un objeto, mientras que un Mock prueba su interacción .
fuente
Creo que "stub" proviene de STartUpBlock. se utiliza para referirse a partes del código que se generan automáticamente para ayudarlo a usted, el desarrollador, a comenzar.
fuente
Un "stub" o "método stub" está diseñado para ser un código de inicio o un sustituto temporal de un código aún por desarrollar. Es un código integrado generado por un IDE. Los métodos stub son en realidad métodos utilizados para probar métodos de una clase en particular. Se usa ingresando algunos valores para las variables locales en sus métodos de desarrollo reales y verificando si la salida es correcta. Es importante para encontrar errores en su código.
fuente
Me enfrenté a la pregunta recientemente y reconocí que esta comparación entre Stub y Driver es realmente clara y útil:
Básicamente, los stubs y los controladores son rutinas que en realidad no hacen nada más que declararse a sí mismos y los parámetros que aceptan. El resto del código puede tomar estos parámetros y usarlos como entradas.
De la diferencia entre Stub y Driver
fuente
Después de investigar un poco y basándome en los archivos de código auxiliar que enfrenté durante mi vida como codificador, diría que un archivo de código auxiliar es solo un archivo que contiene una parte o una parte de la implementación de un archivo. Ayuda a los desarrolladores a comenzar a codificar.
fuente