Sé que esta pregunta es parte de una guerra religiosa, pero tengo la siguiente situación: Tengo un objeto, Responder
que llama a un método en el objeto Updater
en respuesta a diferentes eventos. Recientemente separaron las pruebas de esta manera: pruebas basadas en estado para el método Updater
en sí mismo, y pruebas basadas en el comportamiento para el Responder
que lo llama. Es decir, me burlo del Updater
en las pruebas Responder
, solo para asegurarme de que se llame.Comportamiento vs. Pruebas basadas en el estado
¿Debería seguir probando el estado de los objetos que se supone deben actualizarse en las pruebas Responder
y no burlarme del Updater
? Me gusta lo que hice porque requiere menos configuración y parece aislar mejor las pruebas. Sin embargo, esto parece vincular la implementación y el comportamiento esperado de Responder
a Updater
. ¿Eso es muy frágil? Este es un ejemplo simplificado.
¿Qué tipo de pruebas será satisfactoria aumentar su nivel de comodidad que funciona el código? ¿Sería suficiente una prueba de integración? –
Supongo que una prueba de integración que lo vincule todo aumentará mi confianza. Sin embargo, también me gustaría saber si las personas piensan que esta es una forma válida de probar a nivel de unidad. –