java - Mockito 方法为使用的变量抛出空指针异常

标签 java jakarta-ee junit mockito

我正在使用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/

相关文章:

Java Stackoverflow 错误递归

java - 持久化单元是 RESOURCE_LOCAL 还是 JTA?

java - 是否可以给 EJB 服务调用一个回调

java - JFrame 和 JPanel

java - 在 Linux 环境中运行 java 应用程序时出现问题

java - 无状态和有状态企业 Java Bean

java - MySQL DB JavaEE Glassfish 中的问号

JBOSS 6 中的 javaee.jar 和 javax.ejb.jar?

templates - Intellij:更改JUnit测试类模板

java - 与 Jersey 错误处理达成协议(protocol)