我有一部分代码带有三个布尔值,通过“&&”连接像这样:
bool1 && bool2 && bool3
在测试期间,我调试了这个并发现每个布尔值在所有测试期间都有一个真或假的状态,所以我会考虑这个充分测试。
然而,eclemma表明,有6个分支中有1个没有被覆盖
正如我现在发现的那样,不可能显示哪个分支eclema意味着(不幸的是),但我还想知道,eclemma如何到达6个分支?
从我所看到的有两种可能性:
1.使用代码优化,因此在达到第一个“假”后停止对该表达式的评估,在这种情况下,我会找到4个总状态:
- 假
- 真 - 假
- 真 - 真 - 假 -
- 真 - 真 - 真 -
2.不要使用代码优化,所以在这种情况下我会认为可以测试三种布尔值的所有8种不同状态(2 * 2 * 2 = 8)。
任何人都可以帮助我,为什么eclema数到6,我可以做些什么来达到100%的测试覆盖率?