Ich habe ein Stück Code, das ungefähr so aussieht:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
Ich glaube, es sollte vier Unit-Tests für diese bestimmte Funktion geben. Drei, um jede der Bedingungen in der if-Anweisung zu testen und sicherzustellen, dass sie false zurückgibt. Und ein weiterer Test, der sicherstellt, dass die Funktion true zurückgibt.
Frage: Sollte es stattdessen zehn Unit-Tests geben? Neun, die jeden der möglichen Fehlerpfade überprüft. IE:
- Falsch Falsch Falsch
- Falsch Falsch Richtig
- Falsch Richtig Falsch
Und so weiter für jede mögliche Kombination.
Ich denke, das ist übertrieben, aber einige der anderen Mitglieder in meinem Team tun es nicht. Wenn BusinessRule1 ausfällt, sollte es immer false zurückgeben. Es spielt keine Rolle, ob es zuerst oder zuletzt überprüft wurde.