【发布时间】:2020-10-17 03:30:55
【问题描述】:
公共方法 一个类正在被测试并且在公共方法内部它调用一个私有方法。我想在调用私有方法时忽略(doNothing)。
Myclass{
public void someMethod( String some, File file, long age ,String name ){
-----somecode----
callprivateMethod(File file, long age, String name); //want to mock and Donothing
-----somecode----
}
}
已完成以下操作
@RunWith(PowerMockRunner.class)
@PrepareForTest({Ignorethisclass.class,MyClass.class})
MyClass iMyClass= Mockito.spy(new MyClass());
以下代码给出空指针异常:
[0]org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing(PowerMockitoStubberImpl.java:65) StackTraceElement
doNothing().when(iMyClass, PowerMockito.method(MyClass.class, "callprivateMethod")).withArguments(Mockito.any(File.class),Mockito.any(long.class),Mockito.any(String.class));
我也试过这个,因为我在某个地方读到这样做 下面的代码给出了一个空指针异常
doNothing().when(iMyClass, "callprivateMethod", Mockito.any(File.class),Mockito.any(Long.class),Mockito.any(String.class));
非常感谢任何帮助
【问题讨论】:
-
也试过这个:'PowerMockito.doNothing().when(MyClass, PowerMockito.method(MyClass.class, "callprivateMethod",File.class,long.class,String.class)).withArguments (Mockito.any(File.class),Mockito.any(long.class),Mockito.any(String.class));' '[0] org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing(PowerMockitoStubberImpl.java:65) StackTraceElement'
标签: java methods mocking mockito powermockito