gpt4 book ai didi

java - 使用 EclEmma 的 Java 代码覆盖率不扫描预期的异常方法

转载 作者:太空狗 更新时间:2023-10-29 22:33:43 24 4
gpt4 key购买 nike

我正在尝试使用 Eclipse 和 EclEmma 在 Java 中覆盖我的代码。

我的测试使用的是 JUnit 4,我有一些测试看起来像这样:

    @Test(expected = IllegalArgumentException.class)
public void createTime_withInvalidMinuteUnder0_throws(){
//Arrange
...
//Act
Something triggering IllegalArgumentException Here
}

EclEmma 说测试失败是因为抛出了 IllegalArgumentException。所以它会丢弃我的代码覆盖率指示器,即使它应该抛出一些东西。是否有选项让它看到 JUnit 预期的异常标记?

编辑:我发现如果您也将 throw 添加到测试声明中,它会起作用!

最佳答案

不,没有办法让 EclEmma 注意到 expected 子句。他们承认这个事实here .

Why are JUnit4 test cases with expected exceptions shown as not covered?

JUnit4 test cases with expected exceptions are shown as not covered even though they were executed. The reason for this is that underlying JaCoCo code coverage library only considers code as executed when certain probes are executed. For successful test cases marked with @Test{expected=...} this is not the case.

就个人而言,我不会太担心它。测试用例的覆盖率是 EclEmma 可以告诉您的最不有趣的事情;我总是完全忽略这些指标并专注于我的生产代码的覆盖率。

关于java - 使用 EclEmma 的 Java 代码覆盖率不扫描预期的异常方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com