繁体   English   中英

Jacoco抽象类的代码覆盖部分显示

[英]Jacoco code coverage for abstract class partly shows up

我有一个抽象类,比如说MyClassA ,以及一个扩展它的类,比如说MyClassB 我已经用单元测试介绍了MyClassA (不是抽象的)中的一种方法,然后运行它们,一切都是绿色的。 然后我运行代码覆盖后,我看到,多数民众赞成所示只覆盖了一部分的构造MyClassA ,这是奇怪的,因为它是在创建@Before测试类的部分。

MyClassBUnitTests@Before部分看起来像这样:

@Before
public void setUp() throws Exception {
   Context applicationContext = mock(Context.class);
   MemberModifier.stub(MemberMatcher.method(MyClassB.class,
                    "someFunction")).toReturn(null);
   classBInstance = new MyClassB(applicationContext, ...); 
   //calls the constructor of MyClassA through super()
}

@Test部分类似于:

 @Test
 public void someTest() throws Exception {
    classBInstance = spy(classBInstance);
    MemberModifier.field(MyClassB.class, "somefield").set(classBInstance, someFieldStub);
    classBInstance.methodToTest();
    // actually calls a method implemented in MyClassA
}

是的,我尝试对MyClassA调用所有存根和修饰符,相同。

原来我不得不用

@Rule public PowerMockRule mPowerMockRule = new PowerMockRule();

在测试类中而不是

@RunWith(PowerMockRunner.class)

注解。 虽然不知道为什么。

PS:如果您使用的是第一个-请注意测试不会调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM