unit-testing - 当方法中的代码被 emma 覆盖时,为什么方法调用显示为未覆盖?

标签 unit-testing junit code-coverage emma

我正在编写单元测试来检查私有(private)方法是否会关闭流。

单元测试调用methodB,变量some​​thing为null

单元测试不会模拟测试中的类

私有(private)方法在我调用的公共(public)方法中。

在 eclipse 中使用 emma(通过 eclemma 插件),方法调用显示为未被覆盖,即使方法中的代码是

例如

public methodA(){

    if (something==null) {
        methodB(); //Not displayed as covered
    }
}

private methodB(){
    lineCoveredByTest; //displayed as covered
}

为什么方法调用不会被高亮显示为被覆盖?

最佳答案

我发现 EMMA 的 eclipse 插件有很多问题,并且有过与您描述的相似的经历。最好单独使用 EMMA(如果需要,通过 ANT)。确保始终重新生成 EMMA 生成的元数据文件,以避免合并混淆(我怀疑这是 eclipse 插件的问题)。

关于unit-testing - 当方法中的代码被 emma 覆盖时,为什么方法调用显示为未覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56373/

相关文章:

php - 使用 Codeception 运行现有的 Laravel 5.1 PHPUnit 测试

c++ - 使用 __debugbreak 在 GoogleTest 中捕获自定义断言

java - 如何为返回大数据的方法制作测试用例

java - 如何在 Spring Boot 中创建调用包含构造函数注入(inject)的服务的测试?

PHPstorm PHPunit 代码共同覆盖

asp.net-mvc - 如何在 Web API ASP.Net core 中对异常过滤器进行单元测试。不想模拟 onException 方法

C# 使用 Moq 从模拟存储库中删除项目

java - 在junit测试中封装私有(private)成员变量

c# - 代码覆盖率将第三方代码纳入覆盖范围

code-coverage - 提交消息和覆盖范围显示在 Gitlab CI 构建 (Gitlab 8.6.5) 中