Ho fatto TDD da un anno a questa parte, mi sento piuttosto bene, adoro i miei test suite e tutto il resto. Tuttavia, ho notato che ultimamente ho fatto un sacco di verifica delle chiamate simulate. Per esempio, avrei un servizio con un iniettore del repository - nel mio test unitario avrei passato una simulazione del repository e verificato che fosse chiamato all'interno del metodo che sto testando. Verificherei quindi se i risultati restituiti sono corretti (in un altro test). Questo sicuramente "sembra" sbagliato, dal momento che i miei test unitari sono ora molto accoppiati ai dettagli di implementazione. Ho sentito che dovresti testare il "comportamento", tuttavia in molte delle situazioni che ... emm - non è possibile? Se ad esempio hai un metodo void
, di solito prova gli effetti collaterali. Voglio dire, è facile andare avanti e mostrare alcuni semplici code-kata in cui ciò può essere dimostrato, ma IMHO non riflette molto bene i programmi del mondo reale che scriviamo. Quello che sto facendo è sbagliato? Questo tipo di test è una sorta di anti-pattern? Apprezzerei la tua opinione su questo, sono ancora un po 'un principiante quando si tratta di TDD.