我有一大堆看起来像这样的代码:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
我相信针对此特定功能应进行四个单元测试。三项测试if语句中的每个条件,并确保其返回false。另一项确保该函数返回true的测试。
问题:实际上应该有十个单元测试吗?九个检查每个可能的故障路径。IE浏览器:
- 错误错误错误
- 错误错误正确
- 错误正确错误
对于每种可能的组合,依此类推。
我认为这太过分了,但是我团队中的其他一些成员却没有。我的看法是,如果BusinessRule1失败,那么它应该始终返回false,无论是首先检查还是最后检查都没有关系。