Java doNothing()引发空指针异常
我正在模拟ObjectOutputStream void方法.writeObject(),但它引发空指针异常。 如何使用Mockito/PowerMockito模拟void函数 阶级 测试班Java doNothing()引发空指针异常,java,mockito,powermockito,Java,Mockito,Powermockito,我正在模拟ObjectOutputStream void方法.writeObject(),但它引发空指针异常。 如何使用Mockito/PowerMockito模拟void函数 阶级 测试班 @RunWith(PowerMockRunner.class) @PrepareForTest({ SomeClass.class }) public class SomeClassTest { @Mock private ByteArrayOutputStream byteArr
@RunWith(PowerMockRunner.class)
@PrepareForTest({
SomeClass.class
})
public class SomeClassTest {
@Mock
private ByteArrayOutputStream byteArrayOutputStreamMock;
@Mock
private ObjectOutputStream objectOutputStreamMock;
@Test
public void testSomething() {
MockitoAnnotations.initMocks(this);
PowerMockito.whenNew(ByteArrayOutputStream.class).withNoArguments().thenReturn(byteArrayOutputStreamMock);
PowerMockito.whenNew(ObjectOutputStream.class).withArguments(byteArrayOutputStreamMock).thenReturn(objectOutputStreamMock);
OtherClass otherClass = new OtherClass();
Mockito.doNothing().when(objectOutputStreamMock).writeObject(otherClass); //This throw null pointer exception.
// more code
}
}
堆栈跟踪
java.lang.NullPointerException
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1108)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
objectOutputStreamMock为空。您必须初始化它:
objectOutputStreamMock = Mockito.mock(ObjectOutputStream.class)
Mockito.doNothing()可能重复-->PowerMockito.doNothing()尝试此仍然为空的指针异常。MockitoAnnotations.initMocks(this);初始化它。@TheDominus我的错误,错过了它。尝试
Mockito.doNothing().when(objectOutputStreamMock).writeObject(Matchers.eq(otherClass))
objectOutputStreamMock = Mockito.mock(ObjectOutputStream.class)