Faccio TDD da anni ormai, mi sento abbastanza bene, adoro le mie suite di test e tutto il resto. Tuttavia, ho notato che ultimamente ho fatto molte verifiche di chiamate simulate. Ad esempio, avrei un servizio a cui verrà iniettato un repository: nel mio test unit passerei una simulazione del repository e verificherei che fosse stato chiamato con il 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 associati ai dettagli di implementazione. Ho sentito che dovresti testare il "comportamento", tuttavia in molte situazioni che ... emm - impossibile? Se hai unvoid
metodo, ad esempio, di solito si verificano effetti collaterali. Voglio dire, è facile andare avanti e mostrare alcuni semplici code-kata dove questo può essere dimostrato, ma IMHO non si riflette molto bene sui programmi del mondo reale che scriviamo. Quello che sto facendo è sbagliato? Questo tipo di test è una specie di anti-pattern? Apprezzerei la tua opinione su questo, sono ancora un po 'un principiante quando si tratta di TDD.