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 implica 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 a los mismos valores predeterminados.
Todavía tengo que resolver el propósito / contexto de cualquiera de las clases, o cómo se utilizarían. Por lo tanto, no puedo inicializar el objeto desde una clase B vacía y verificar que tenga los valores correctos / haga lo correcto.
Mi mejor idea es ejecutar el código original, codificar los resultados de los métodos públicos en función de los miembros inicializados, y probar el nuevo código contra eso. No puedo articular por qué me siento vagamente incómodo con esta idea.
¿Hay un mejor ataque aquí?