che sto facendo TDD per molto tempo . Sto facendo TDD con ASP.NET MVC per più di un anno.
Ho iniziato con regole canoniche: "nessuna riga di codice senza test di unità", quindi ho testato tutto, inclusi i controller. I controllori devono essere testati, questo era uno degli obiettivi del framework MVC - Rendere tali elementi testabili.
Per le applicazioni di piccole dimensioni che si avvicinano funziona davvero bene. Quasi tutta la logica è inserita nel controller, tutto molto ben testato.
Ma finché ho continuato con MVC ho iniziato a cambiare idea. Cerco di mantenere i controller il più sottili possibile. Idealmente niente più come delegare la chiamata a qualche oggetto aziendale e avvolgere i risultati. Il resto è con i filtri.
Questo ha funzionato bene anche per me! Ora ho oggetti business implementati/testati separatamente, quindi il controller è solo un punto di integrazione. Nessun motivo per testare il punto di integrazione poiché è troppo piccolo.
Per quanto riguarda i test di integrazione: non ho ancora soddisfatto la situazione, dove effettivamente ne ho bisogno. Non dimenticare che i controllori dipendono sempre dalle astrazioni che vengono iniettate dal costruttore. Finché hai "buone" ipotesi su come funzionano queste astrazioni, crei i test unitari appropriati. Come hai fallito, hai appena corretto i test unitari.
I test di integrazione sono importanti e utili, ma cerco di crearli il meno possibile.
fonte
2012-04-18 13:55:55
Che cosa significa servizi? – user972959