Pregunta

acabo de ver esto gracioso Vídeo de YouTube sobre pruebas unitarias (es Hitler con subtítulos falsos regañando a su equipo por no hacer buenas pruebas unitarias; sáltelo si tiene problemas de humor) donde los resúmenes son rotundamente criticados.Pero no entiendo qué hay de malo con los talones.

No he empezado a usar un marco burlón y no he empezado a sentir el dolor de no usarlo.

¿Me espera un mundo herido en algún momento? ¿Habiendo elegido talones escritos a mano y falsificaciones en lugar de simulacros (como Rhinomock, etc.)? (usando la taxonomía de Fowler)

¿Cuáles son las consideraciones para elegir entre un talón simulado y uno escrito a mano?

¿Fue útil?

Solución

No hay nada de malo en los stubs, hay espacio para stubs, simulacros...y espías.Todos son "dobles de prueba", pero con diferentes propósitos como se explica en Los simulacros y los talones no son espías:

...] Antes de seguir adelante, me gustaría aclarar y definir algunos términos en uso aquí, que originalmente descubrí en Gerard Meszaros ' Libro de patrones de xunit.

  • Un objeto ficticio es un objeto de marcador de posición que se pasa al sistema en prueba pero nunca se usa.
  • Un trozo de prueba proporciona al sistema bajo prueba una entrada indirecta.
  • Un spy de prueba proporciona una forma de verificar que el sistema bajo prueba realizó la salida indirecta correcta
  • Un objeto simulado proporciona el sistema en prueba con entrada indirecta y una forma de verificar la salida indirecta

...] y puedes dejar que este práctico cuadro guíe tus decisiones:

alt text

PD: Mockito: el nuevo marco simulado del bloque También vale la pena leerlo.

Otros consejos

Yo uso la siguiente terminología (introducido por Roy Osherove, el autor del Arte de la Unidad-Testing):

falsa se denomina talón si le dice a algo falso en caso de que un método es llamado con tales y tales parámetros. Pero si además de comprobar que tal llamada en realidad tuvo lugar o haya tenido lugar exactamente N veces, entonces tal falsa se llama simulacro . En breve. una falsificación es un esbozo a menos que llame Verify () en él y luego se trata de un simulacro.

Obviamente, usted tendrá que utilizar los talones en algunos casos y en otros, se burla. Así, criticar rotundamente talones es probablemente mal y utilizando exclusivamente los talones es probablemente mal también.

Si no ha empezado a utilizar un marco de burla (término alternativo: marco aislamiento ), debe mantener un ojo sobre ellos y volver a evaluar sus opciones con frecuencia. Fui de burla manuales para NMock2 a Moq muy rápidamente. Aquí hay una interesante encuesta de programadores que muestra lo que utilizan. burla manuales / talones son una minoría, pero no son tan infrecuentes.

Mocks son sólo mucho más fácil de tirar. Son una verdadera instancia de su clase, pre-apagó con la capacidad de anular la acción de cualquier método repetitivo con mínima.

Hay un montón de consideraciones pequeños tales como: Si no quiere tratar con cualquiera de los métodos, puede tener que actuar como un no-op o no pasan la prueba - su elección - pero de cualquier manera prácticamente ningún código.

¿Cuánto repetitivo Qué se obtiene cuando usted tropieza a cabo una clase? ¿Cómo lo manejas si su clase es final? Cómo se juega trucos para conseguir su talón en la ruta de clase primera, o usas fuente diferente?

Te recomiendo que acaba de empezar con los simulacros - Es más fácil todo

.

No hay nada malo con el uso de recibos en lugar de burla.

Si desea obtener asistencia técnica, los simulacros son objetos "inteligentes" con las expectativas que pueden ser verificados. Talones son objetos ficticios que devuelven valores preestablecidos. Ver Mocks No están talones de .

Sin embargo, mucha gente (yo incluido) prefieren hacer las pruebas del estado de colillas en lugar de las pruebas de comportamiento con burla. Se inyecta un talón en la clase bajo prueba, se llama a un método, a continuación, comprobar el estado de la clase que se está probando. Se tiende a hacer que para las pruebas menos frágil que afirmar que internals de la clase llamada método X de un objeto mock con el argumento Y.

No creo que estás en un mundo de dolor. Si aún no ha empezado a sentir el dolor, es probable que no necesita un aislamiento / burlarse marco todavía. Cuando y si lo hace, teniendo talones manuscritas / farzantes alrededor no va a doler nada.

Si usted tiene una gran cantidad de interfaces, o si sus interfaces tienen una gran cantidad de métodos, un aislamiento / burlarse marco puede ahorrar una gran cantidad de tiempo durante talones de codificación manual.

Moq mucho; Me resulta más fácil de usar que burla de Rhino para crear talones.

Mocks y talones se utiliza para lograr una prueba de unidad real. Usted acaba de burlas de todas las dependencias, y la unidad de prueba de su clase en forma aislada.

Actualmente estoy usando MOQ por burlarse y tropezar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top