Recientemente completé una refactorización de caja negra. No puedo registrarlo, porque no puedo averiguar cómo probarlo.
En un nivel alto, tengo una clase cuya inicialización consiste en tomar valores de alguna clase B. Si la clase B está "vacía", genera algunos valores predeterminados razonables. Extraje esta parte a un método que inicializa la clase B con esos mismos valores predeterminados.
Todavía tengo que determinar el propósito / contexto de cualquiera de las clases, o cómo se usarían. Así que no puedo inicializar el objeto desde una clase B vacía y comprobar que tiene los valores correctos / hace lo correcto.
Mi mejor idea es ejecutar el código original, el código en los resultados de los métodos públicos en función de los miembros inicializados, y probar el nuevo código con eso. No puedo expresar por qué me siento vagamente incómodo con esta idea.
¿Hay un mejor ataque aquí?