Cuál es la mejor manera de probar la unidad un método que pone en múltiples métodos, por ejemplo:Unidad de evaluación de un método que llama a otro método
modify(string value)
{
if(value.Length > 5) replaceit(value);
else changeit(value);
}
Esta pseudo código tiene un método de modificación que (actualmente) llama a cualquiera replaceit()
o changeit()
. Ya he escrito pruebas para replaceit
y changeit
, por lo que escribir una nueva prueba para modificar será del 99% el mismo conjunto de código. Necesito probarlo porque puede cambiar en el futuro.
¿Copio y pego el código de prueba existente? Mueva el código de prueba a una función común? ¿Alguna otra idea? No estoy seguro de la mejor práctica aquí.
No estoy de acuerdo con la descomposición en factores de las pruebas en funciones auxiliares. Creo que el código de prueba es mucho más legible/mantenible cuando todas las afirmaciones permanecen en las funciones de prueba. Cuando las personas que escriben factores afirman, tienden a comenzar "pruebas de escopeta" y dejan de pensar en sus casos reales de prueba. –
@Scotty: depende. Algunas pruebas son inevitablemente largas para configurar y verificar. Podemos tratar de evitarlo todo lo que queramos, pero a veces solo es necesario. Los métodos de ayuda pueden ahorrar una gran cantidad de código repetitivo. –