Ho un pezzo di codice che assomiglia a questo:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
Credo che dovrebbero esserci quattro test unitari per questa particolare funzione. Tre per testare ciascuna delle condizioni nell'istruzione if e assicurarsi che restituisca false. E un altro test che assicura che la funzione ritorni vera.
Domanda: in realtà dovrebbero esserci invece dieci test unitari? Nove che controlla ciascuno dei possibili percorsi di errore. IE:
- Falso Falso Falso
- Falso Falso Vero
- Falso Vero Falso
E così via per ogni possibile combinazione.
Penso che sia eccessivo, ma alcuni degli altri membri del mio team no. Il modo in cui lo guardo è se BusinessRule1 fallisce, quindi dovrebbe sempre restituire false, non importa se è stato controllato per primo o per ultimo.