A veces los objetos solo necesitan estar estrechamente acoplados. Por ejemplo, una CsvFileclase probablemente necesitará trabajar estrechamente con la CsvRecordclase (o ICsvRecordinterfaz).
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 ICsvRecordsimulacros o trozos en lugar de instancias reales de CsvRecord.
Sin embargo, después de probar este enfoque, noté que burlarse de la CsvRecordclase 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 CsvRecordinstancias 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?