一个没有返回值的方法,内部通过代理调用了另外一个添加的方法类似Manager.insert()。用mockito写单元测试的时候,Mockito.verify(Manager,atLeastOnce).insert(参数),出现了Manager和ManagerTest参数不匹配的问题,是因为什么呢
试一下用PowerMockito.verifyStatic
来verify.
以下是一个例子
public class Utils {
public static boolean print(String msg) {
System.out.println("Printing "+msg);
return true;
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(Utils.class)
public class JUnit4PowerMockitoStaticTest{
@Test
public void test_static_mock_methods() {
PowerMockito.mockStatic(Utils.class);
when(Utils.print("Hello")).thenReturn(true);
when(Utils.print("Wrong Message")).thenReturn(false);
assertTrue(Utils.print("Hello"));
assertFalse(Utils.print("Wrong Message"));
PowerMockito.verifyStatic(Utils.class, atLeast(2));
Utils.print(anyString());
}
}
这是官网的文档链接 https://www.journaldev.com/21912/mockito-mock-static-method-powermock