我有一个部分Mock在从PowerMock 1.4.8更新到1.7.0RC4之后不再工作,以解决降低代码覆盖率的声纳/ jacoco不兼容性问题。之后,不会调用使用匹配器作为参数的所有模拟。代码如下:
Calculator calc = mock(Calculator.class);
when(calc.getA()).thenReturn(new BigDecimal("1"));
when(calc.getB()).thenReturn(new BigDecimal("2"));
when(calc.calculate(any(Date.class), anyInt(), any(MyObject.class))).thenCallRealMethod();
传递真实参数时,最后一个模拟方法永远不会调用。我注意到这只是因为使用了诸如MyObject之类的非原始类型的Matchers。任何人都可以帮我解决这个问题吗?
我的pom.xml:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.7.0RC4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
<version>1.7.0RC4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>1.7.0RC4</version>
<scope>test</scope>
</dependency>
PS:我已经在使用ArgumentMatchers而不是Matchers api。
提前致谢