A veces los objetos solo necesitan estar estrechamente acoplados. Por ejemplo, una CsvFile
clase probablemente necesitará trabajar estrechamente con la CsvRecord
clase (o ICsvRecord
interfaz).
Sin embargo, de lo que aprendí en el pasado, uno de los principios principales del desarrollo basado en pruebas es "Nunca pruebe más de una clase a la vez". Lo que significa que debe usar ICsvRecord
simulacros o trozos en lugar de instancias reales de CsvRecord
.
Sin embargo, después de probar este enfoque, noté que burlarse de la CsvRecord
clase puede ser un poco difícil. Lo que me lleva a una de dos conclusiones:
- ¡Es difícil escribir pruebas unitarias! ¡Eso es un olor a código! Refactor!
- Burlarse de cada dependencia es irracional.
Cuando reemplacé mis simulacros con CsvRecord
instancias reales , las cosas salieron mucho mejor. Cuando busqué los pensamientos de otras personas, me encontré con esta publicación de blog , que parece respaldar el n. ° 2 anterior. Para los objetos que están naturalmente estrechamente unidos, no debemos preocuparnos tanto por burlarse.
¿Estoy fuera de lugar? ¿Hay alguna desventaja en el supuesto # 2 anterior? ¿Debería estar pensando en refactorizar mi diseño?