Estoy tratando de practicar TDD.Descubriendo otros objetos mientras hago TDD
Mi entendimiento es que TDD deben ir así
- Escribir una lista de pruebas para la interfaz/clase que voy a desarrollar.
- Comience con la prueba más fácil no implementada de mi lista de prueba.
- Escriba la prueba, no hay código de implementación todavía.
- Escriba la interfaz de la clase para compilar el código.
- Ejecute la prueba dando como resultado una prueba de falla.
- Escriba la implementación que hace pasar la prueba.
- Refactorizar el desastre que he creado.
- Goto 2.
El problema que tengo es al escribir la puesta en práctica o hacer la refactorización. A menudo llego a la conclusión de que la implementación que acabo de escribir debería delegarse en otra clase.
¿Qué debería hacer un verdadero TDD'r en este momento?
- dejo la lista de prueba existente solo por un tiempo y crear uno nuevo para la clase recién descubierto (el mismo problema puede manifestarse en la aplicación de la nueva clase offcourse)
- ir por el camino de interacción basado de probando y simulando la nueva clase, continúa con las pruebas de la clase en la que estás trabajando y vuelve más tarde para crear una implementación correcta de la clase burlada.
- Esta situación no debería presentarse. Probablemente no he pensado bien mi diseño inicial. (¿pero no sería así para derrotar uno de los propósitos de TDD ?!).
Me encantaría saber cómo otras personas manejan estas situaciones.
Pero la (s) nueva (s) clase (s) deberían probarse por sí mismas, ¿o no? Si el diseño lo lleva al punto donde le gustaría crear múltiples clases de "soporte", la prueba de unidad con la que comenzó se está convirtiendo en una prueba de integración. –