Recentemente ho avuto a che fare con Sr Dev che ama i test delle unità. È fantastico! Non sono sicuro di essere d'accordo con i suoi metodi di prova, però, esempio forzato:
function foo (String $var) {
switch ($var) {
case 'hello':
return '-world';
default:
return 'good-bye!';
}
}
function TestFoo() {
$result = foo('hello');
assertInternalType('string', $result);
}
Spero che il problema qui sia ovvio, questi tipi di test in realtà non testano affatto la logica di business, ma fanno aumentano la copertura del codice (che ama sfoggiare). Alla domanda su test come questo, ho ricevuto un messaggio generale "Non l'ho scritto per testarlo (valori restituiti)." risposte.
Questo è abbastanza frustrante per me, soprattutto perché ha iniziato a rimuovere test esistenti che controllano i valori di ritorno a favore di questo test di tipo generico.
Questa è una cattiva pratica, corretta? Proprio ieri ho trovato un bug in una funzione che ha superato il test a causa di questo motivo - non mi fa sentire bene con il codice.