Escribí esta clase que hace algunas cosas (tal vez esto sea una violación del Principio de Responsabilidad Única). Ahora me doy cuenta de que alguna otra parte del proyecto necesita una pieza de esa lógica y la forma en que lo expondré es extraer una clase de mi sistema bajo prueba original.
Anticipo poder hacer esto sin tener que cambiar ningún código de prueba, pero cuando termine, podría argumentar que la prueba ya no es una prueba de unidad . Estará probando la clase original y la clase que he extraído. En otras palabras, tendré un caso de prueba, pero dos sistemas bajo prueba.
¿Se supone que debo refactorizar mi código de prueba después de que termine? IE: ¿Crear un ExtractedClassTest y mover todas las pruebas relevantes de OriginalClassTest en él? Parece que podría ser un poco arriesgado: es posible que pierda algo de cobertura en el proceso, que no sea tan simple como mover una prueba y que termine de reescribir un código de prueba que sé que solía funcionar pero que ya no funciona. etc.
Por otra parte, si dejo el OriginalClassTest como está, puedo ver que esto es un problema de mantenimiento de prueba. Será un poco confuso encontrar dónde están las pruebas ExtractedClass. Tu primera impresión será que no existe. Con el tiempo, con muchas refactorizaciones de código de producción, esto podría convertirse en un problema grave.
Soy nuevo en TDD, así que me gustaría el consejo de un experto. Gracias!