【发布时间】:2018-05-16 18:19:53
【问题描述】:
当我运行这个 JUnit 测试时,我得到了 1/4 的分支覆盖率。但是,当我将if 语句更改为“if (points == 1 || points == 2 || points == 3 || points == 4)”时,它通过了 JUnit 测试。我做错了什么?
主类:
public int getPoints() {
return points;
}
public Grade(int p) throws IllegalArgumentException {
if (p < 1 || p > 20)
throw new IllegalArgumentException();
points = p;
}
// Your additions/changes below this line
public Classification classify() {
if (points >= 1 && points <= 4) {
return Classification.First;
}
else {
throw new IllegalArgumentException("Not a Grade");
}
}
JUnit 测试:
@Test
public void testFirst() {
Assert.assertEquals(Classification.First, new Grade(1).classify());
Assert.assertEquals(Classification.First, new Grade(2).classify());
Assert.assertEquals(Classification.First, new Grade(3).classify());
Assert.assertEquals(Classification.First, new Grade(4).classify());
}
【问题讨论】:
-
如果你想增加你的分支覆盖率,你需要添加一些
if条件出现false的测试用例。 -
欲了解更多信息,请参阅:Posts containing 'junit branch coverage'