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
我正在尝试验证在使用 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