Ho una porzione di codice simile a questa:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
Credo che ci dovrebbero essere quattro test unitari per questa particolare funzione. Tre per testare ciascuna delle condizioni nella dichiarazione if e assicurarsi che restituisca false. E un altro test che si assicura che la funzione restituisca true.
Domanda: dovrebbero invece esserci dieci test unitari? Nove che controlla ciascuno dei possibili percorsi di errore. IE:
- False False False
- Falso Falso Vero
- Falso Vero Falso
E così via per ogni combinazione possibile.
Penso che sia eccessivo, ma alcuni degli altri membri della mia squadra no. Il modo in cui lo guardo è se BusinessRule1 fallisce, allora dovrebbe sempre restituire false, non importa se è stato selezionato per primo o per ultimo.