問題:PowerMockito.doNothing()を実行しようとするとNullpointer例外がスローされます。プライベートセッターのPowerMokito doNothing()NullPointer
プライベートメソッド値を返すpartialMockObjectクラスを作成し、別のプライベートセッターメソッドには何もしないでください。
私はdoNothing()をsupress()に置き換えても、これを理解したいと思っています。
コード:
@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);
}
のStackTrace:org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbingで 「 java.lang.NullPointerExceptionが (PowerMockitoStubberImpl.java:68) 組織でorg.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.whenで.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:43) (PowerMockitoStubberImpl.java:104)
入力いただきありがとうございます。ええ、私は最新バージョンのMockitoを疲れさせました。それは、ボイドであるときだけ、リターンでプライベートメソッドを嘲笑することには問題ありませんでした。しかし、suppress(Method)を使うとプライベートセッターメソッドを使うことができました。 – haju