0
这是我的测试代码:为什么我可以验证静态方法20次,它不会失败?
public void testApplyListWhenAddTheSameIDThenReturnDuplicateEntityException(){
MyEntity entityRCM = createMyEntity(AGE_ID, WEIGHT_ID, 0L);
entityModel.addEntity(entityRCM);
MyEntity entityOPC = createMyEntity(DIFF_AGE_ID, WEIGHT_ID, 0L);
EntityCreate create = new EntityCreate(entityOPC);
List<EntityChange> changeList = new ArrayList<EntityChange>();
changeList.add(create);
try {
entityModel.apply(changeList);
fail();
}catch(DuplicateEntityException e) {
PowerMockito.verifyStatic(times(20));
LogManager.error(Mockito.<Logger>anyObject(),Mockito.anyString(),Mockito.<DuplicateEntityException>anyObject());
}
}
的问题是在这里:
PowerMockito.verifyStatic(times(20));
LogManager.error(Mockito.<Logger>anyObject(),Mockito.anyString(),Mockito.<DuplicateEntityException>anyObject());
我想验证一个静态方法error
在LogManager
类,但我怎么能确认这个方法了二十次,但不会失败。
您是否添加了['@ PrepareForTest'和'mockStatic'](https://code.google.com/p/powermock/wiki/MockitoUsage#Mocking_Static_Method)?如果没有,那么你可能已经设置了你的匹配器和静态调用,但是PowerMock在你的测试完成之前从不会看到实际的调用模拟。 –
是的,谢谢。我已经通过添加mockStatic(LogManager.class)解决了这个问题。并且这就是你所说的“永远不会看到实际的模拟调用”,我试图在没有mockStatic()的情况下verifyStatic() –