假设我有以下函数(伪代码):
bool checkObjects(a, b)
{
if ((a.isValid() && (a.hasValue()) ||
(b.isValid() && (b.hasValue()))
{
return true;
}
return false;
}
我应该编写哪些测试才能声称它已 100% 覆盖?
总共有 16 种可能的输入组合。我应该编写 16 个测试用例,还是应该聪明地省略一些测试用例?
例如,我应该为
编写测试吗[a valid and has value, b valid and has value]
如果我测试它返回预期的内容
[a valid and has value, b invalid and has value]
和
[a invalid and has value, b valid and has value]
?
谢谢!
P.S.:也许有人可以推荐有关单元测试方法的好读物?
最佳答案
Kent Beck 的测试驱动开发做得很好,正在成为经典 (http://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530)
如果您想彻底检查,那么 16 次检查是值得的。
关于unit-testing - 请建议一种对简单功能进行单元测试的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4925770/