Power mockito 验证静态调用真实方法

Power mockito verify static calls real method

我正在尝试验证在使用 powerMockito 1.6.4 测试服务方法时从未调用过静态方法

我跟着This answer做了同样的事情。

以下是我的代码。

@RunWith ( PowerMockRunner.class)
@PrepareForTest ( MyClass.class)
@PowerMockIgnore ( "javax.net.ssl.*")
public class SomeTests
{
 @Test
    public void testMyMethodIsNotCalled() throws Exception
    {
        PowerMockito.mockStatic(MyClass.class);
        underTest.testMethod();
        PowerMockito.verifyStatic(Mockito.never());
        MyClass.myMethod(Mockito.any());
    }
}

我现在面临的问题是,MyClass.myMethod(Mockito.any()); 调用真正的 myMethod 并给出 nullPointerException。

我的假设是 MyClass.myMethod(Mockito.any());PowerMockito.verifyStatic(Mockito.never()); 一起工作以指定要验证的静态方法。

我是不是漏掉了什么?

你还必须模拟静态方法的行为

即像这样

PowerMockito.mockStatic(NameOfClass.class);
expect( NameOfClass.nameOfMethod((URL)Mockito.any(),Mockito.anyString())).andReturn(actualOutput);

参考Mock method with parameters