prueba de unidad a través de comprobaciones de cordura de salida

A menudo he visto pruebas en las que las entradas enlatadas se introducen en un programa, uno verifica las salidas generadas contra las salidas enlatadas (esperadas) generalmente a través de diff. Si se acepta la diferencia, se considera que el código pasa la prueba.

Preguntas:

1) ¿Es esta una prueba unitaria aceptable?

2) Por lo general, las entradas de prueba de unidad se leen desde el sistema de archivos y son grandes archivos xml (tal vez representan un sistema muy grande). ¿Se supone que las pruebas unitarias deben tocar el sistema de archivos? ¿O una prueba unitaria crearía una pequeña entrada sobre la marcha y la transmitiría al código que se probará?

3) ¿Cómo se puede refactorizar el código existente para que se pueda probar la unidad?

Respuestas a la pregunta(12)

Su respuesta a la pregunta