Java 更改验证模式或预期参数PowerMock verifyStatic调用时获取NotAMockException而不是断言失败

Java 更改验证模式或预期参数PowerMock verifyStatic调用时获取NotAMockException而不是断言失败,java,mockito,powermock,Java,Mockito,Powermock,我有一个测试,它验证了使用某些参数调用静态方法 @PowerMockIgnore({"javax.management.*"}) @RunWith(PowerMockRunner.class) @PrepareForTest({MyUtil.class}) @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class MyTest { @Test public void Test() { PowerMoc

我有一个测试,它验证了使用某些参数调用静态方法

@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”调用该方法一次,则该方法可以正常工作,但是如果我将验证更改为
次(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内联。我什么都没找到,有什么想法吗?谢谢大家!

重要提示:您需要为每个方法验证调用verifyStatic(Static.class)。