A volte gli oggetti devono solo essere strettamente accoppiati. Ad esempio, CsvFile
probabilmente una classe dovrà lavorare strettamente con la CsvRecord
classe (o l' ICsvRecord
interfaccia).
Tuttavia, da quello che ho imparato in passato, uno dei principi principali dello sviluppo guidato dai test è "Non testare più di una classe alla volta". Significa che dovresti usare ICsvRecord
beffe o tronconi piuttosto che esempi reali di CsvRecord
.
Tuttavia, dopo aver provato questo approccio, ho notato che deridere la CsvRecord
classe può diventare un po 'peloso. Il che mi porta a una delle due conclusioni:
- È difficile scrivere test unitari! È un odore di codice! Refactor!
- Deridere ogni singola dipendenza è semplicemente irragionevole.
Quando ho sostituito le mie derisioni con CsvRecord
casi reali , le cose sono andate molto più agevolmente. Quando ho cercato i pensieri degli altri, mi sono imbattuto in questo post del blog , che sembra supportare il n. 2 sopra. Per gli oggetti che sono naturalmente strettamente accoppiati, non dovremmo preoccuparci troppo del deridere.
Sono fuori strada? Ci sono degli svantaggi nell'ipotesi n. 2 sopra? Dovrei davvero pensare al refactoring del mio design?