У меня есть тест, который проверяет, что статический метод был вызван с определенными аргументами
@PowerMockIgnore({"javax.management.*"})
@RunWith(PowerMockRunner.class)
@PrepareForTest({MyUtil.class})
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class MyTest {
@Test
public void Test() {
PowerMockito.mockStatic(MyUtil.class);
when(MyUtil.doStaticMethod(any(), any())).thenReturn("value");
// do test
...
verifyStatic(MyUtil.class, times(1));
MyUtil.doStaticMethod("a", "b");
}
}
Это прекрасно работает, если метод вызывается один раз с аргументами "a" и "b", однако, если я изменяю проверкув times(2)
или "aa", "b"
вместо получения ошибки при тестировании я получаю
org.mockito.exceptions.misusing.NotAMockException: Argument should be a mock, but is: class java.lang.Class
at org.powermock.core.MockGateway.doMethodCall(MockGateway.java:182)
at org.powermock.core.MockGateway.doMethodCall(MockGateway.java:164)
at org.powermock.core.MockGateway.methodCall(MockGateway.java:141)
at com.mycompany.project.MyUtil.doStaticMethod(S3ServiceUtil.java)
at ...
Я использую Powermock 1.7.4 и mockito 2.8.9, и у меня настроен встроенный mock-maker-inline для финального классаизмерительные приборы.Я не смог ничего найти, есть идеи?Спасибо!