Saa*_*zid 8 java instrumentation cobertura spring-data jacoco
关于以下信息:
Cobertura没有仪器接口
我想知道如何将spring-data接口添加到coverage结果中,因为@Repository实现类只是在运行时由Spring声明和实例化.
考虑以下界面:
// src/main/java/my/package/MyObjectRepository.java
@Repository
public interface MyObjectRepository {
MyObject findMyObjectByCodeAndName(String code, String name);
}
Run Code Online (Sandbox Code Playgroud)
并进行以下测试:
// src/test/java/my/package/MyObjectRepositoryTest.java
// @RunWith(SpringJUnit4ClassRunner.class) + Spring configuration
public class MyObjectRepositoryTest {
@Autowired
private MyObjectRepository myObjectRepository;
@Test
public void myTest() {
myObjectRepository.findMyObjectByCodeAndName("foo","bar");
}
}
Run Code Online (Sandbox Code Playgroud)
我不介意切换到Jacoco,但我读过它也没有设备接口.
如何涵盖以下案例?关于Mybatis Mapper也会出现同样的问题/问题,它们被声明为接口,但实现它们的具体Java类声明不是由开发人员编写的,而是由运行时的框架编写的.
我已经开了票,但我还在等待答案.
如果我理解正确的话,接口不能被覆盖。接口只是定义契约,不包含“运行时”命令。代码覆盖率工具仅测量运行测试可到达的行。换句话说,只能覆盖字段声明、构造函数或方法体。
包含一些默认方法的 Java8 接口可能是一个例外。
| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |