在编写单元测试(使用junit)时,是否有必要将测试方法分开以达到完整的条件覆盖率?
以这个片段为例:
int foo(boolean a, boolean b, boolean c){
if(a && b && c)
return 1;
else return 0;
}
如果是这样的话,那么最好为条件覆盖率编写一个方法和不同的断言吗?或者每种情况都有一种方法?
@Test
void conditionsTest(){
assertEqual(0, foo(true, false, false));
assertEqual(0, foo(true, true, false));
assertEqual(1, foo(true, true, true));
...
}
或
@Test
void condition1Test(){
assertEqual(0, foo(true, false, false));
}
@Test
void condition2Test(){
assertEqual(0, foo(true, true, false));
}
@Test
void condition3Test(){
assertEqual(1, foo(true, true, true));
}