A volte gli oggetti devono solo essere strettamente accoppiati. Ad esempio, CsvFileprobabilmente una classe dovrà lavorare strettamente con la CsvRecordclasse (o l' ICsvRecordinterfaccia).
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 ICsvRecordbeffe o tronconi piuttosto che esempi reali di CsvRecord.
Tuttavia, dopo aver provato questo approccio, ho notato che deridere la CsvRecordclasse 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 CsvRecordcasi 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?