我正在使用mockito来执行测试,并且我对它非常陌生。 我在 Mockito 方法和 Onmessage 方法中使用声明的对象/变量时遇到空指针异常。 代码片段如下。
A类.java
Class A{
@Inject
CheckConnection connection;
public void onMessage(Message m)
{
if(connection.IsInternetavailable==true) //Null pointer is occuring here
{
//Do something with Message
}
else
{
//Do something with Message
}
}
}
类Atest.java-Mockito类
Class ATest
{
@InjectMocks
A resource;
@Mock
CheckConnection connection;
@Test
public void shouldProcessMessage() throws JMSException {
// Arrange
final String Type = "MessageType";
final String Body = "MessageBody"
final ActiveMQTextMessage message = new ActiveMQTextMessage();
message.setStringProperty("messageType", Type);
message.setText(Body);
// Act
this.resource.onMessage(message); //This method fails i.e. it gives null pointer exception
}
}
最佳答案
首先:注释是 InjectMocks
而不是 InjectMock s 丢失
第二:您需要使用此调用 MockitoAnnotations.initMocks(this);
来初始化模拟,该调用应位于您的设置方法中或测试方法中的第一个调用中。
关于java - Mockito 方法为使用的变量抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39608726/