次のようなコードの塊があります。
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
この特定の機能には、4つのユニットテストがあるはずです。ifステートメントの各条件をテストし、falseを返すことを確認するには3つ。そして、関数がtrueを返すことを確認する別のテスト。
質問:代わりに、実際には10個の単体テストが必要ですか?考えられる各障害パスをチェックする9つ。IE:
- 偽偽偽
- False False True
- False True False
など、可能な組み合わせごとに。
それはやり過ぎだと思いますが、私のチームの他のメンバーの一部はそうではありません。私が見る方法は、BusinessRule1が失敗した場合、常にfalseを返す必要があり、最初にチェックされたか最後にチェックされたかは関係ありません。