public class Degree {
public Degree(List<Grade> year2, List<Grade> year3) {
if (year2.size() != 4 || year3.size() != 4) {
throw new IllegalArgumentException();
}
}
我有“不包含 4 级”的声明来创建 Junit 测试。有没有更好的方法来改进这个陈述(以我的知识来帮助我将来)。
@Test(expected = IllegalArgumentException.class)
public void donotcontaingrade() {
List<Grade> year2 = new ArrayList<>();
year2.add(new Grade(1));
year2.add(new Grade(2));
year2.add(new Grade(3));
List<Grade> year3 = new ArrayList<>();
year3.add(new Grade(1));
year3.add(new Grade(2));
year3.add(new Grade(3));
new Degree(year2, year3);
}
我的 Junit 测试示例
最佳答案
您的测试将通过,因为将引发异常。
但是,您犯了一个常见错误,即尝试在一次测试中测试多个问题。您确实需要四次测试才能完全覆盖。
快乐之路,您传入两个有效参数并返回一个实例,而不是异常(exception)。
您传递了一个坏值和一个好值,并得到了异常。
您传递一个好的值和一个坏的值,并得到一个异常。
您传入两个错误值并得到异常。
后期添加:当 if 语句包含 OR 运算符时,您无法在工具中获得 100% 的覆盖率。这是因为覆盖率工具想要检查这两个条件是否为假。但是,OR 停止检查第一个 false,因此不会检查第二个条件。
为了达到 100% 的覆盖率,请使用 OR 将 if 拆分为两个 if。代码执行是相同的,但覆盖率工具将看到所有执行的代码。
关于java - 不包含4级-Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47799712/