【发布时间】:2019-02-11 15:57:59
【问题描述】:
在编写单元测试时(使用junit),是否需要将测试方法分开才能达到完整的条件覆盖?
以这个 sn-p 为例:
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));
}
【问题讨论】:
标签: unit-testing junit separation-of-concerns test-coverage