問題:嘗試執行PowerMockito.doNothing()時拋出Nullpointer異常。PowerMokito doNothing()在私人setter上空指針
我需要創建一個partialMockObject類,它將返回一個私有方法值並且對另一個私有setter方法不做任何操作。
如果我用supress()替換doNothing()但是想弄明白這一點,我可以使它工作。
代碼:
@Test
public void testPowerMockito() throws Exception
{
final String methodName1 = "Method1";
final String methodName2 = "Method2";
//Using PowerMockito
ObjectToTest partialMockObject = PowerMockito.spy(new ObjectToTest());
//Mock the private method, expect that a false
PowerMockito.doReturn(false).when(partialMockObject,methodName1);
//Do Nothing on the void private setter
PowerMockito.doNothing().when(ObjectToTest.class,methodName2);
String result = partialMockObject.methodToTest();
assertEquals("Fail","",result);
//Confirms that the private method was called
PowerMockito.verifyPrivate(partialMockObject).invoke(methodName1);
PowerMockito.verifyPrivate(partialMockObject).invoke(methodName1);
}
堆棧跟蹤: ' 顯示java.lang.NullPointerException 在org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing(PowerMockitoStubberImpl.java:68) 在有機.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:43) 在org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:104)
感謝您的輸入。雅我厭倦了最新版本的Mockito,並且使用返回模擬私有方法沒有問題,只是當它們是空的時候。然而壓制(方法)允許我移動私有setter方法。 – haju 2012-01-13 17:38:39