记录学习Mockito单元测试的坑——空指针异常

情况一

mockito-all依赖和mockito-core依赖同时引用时,可能会报空指针异常

正确引用

        <!--导入junit单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <!-- 单元测试-->
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>3.6.28</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-inline</artifactId>
            <version>3.11.2</version>
            <scope>test</scope>
        </dependency>

情况二

使用@Mock注解生成模拟对象时没有在类上添加注解@RunWith(MockitoJUnitRunner.class)

正确使用

/**
 * @author Snape
 * @create 2022-11-09 15:58
 *
 * 使用@Mock注解生成一个模拟对象,必须要在类上加一个注解@RunWith(MockitoJUnitRunner.class),
 * 不然的话list会是null值
 *
 */
@RunWith(MockitoJUnitRunner.class)
public class MockitoTest {
    @Mock
    private List list;
    
    @Test
    public void testAdd(){
        list.add(1);
        verify(list).add(1);
    }

}

情况三

注解@Test导包导错了

正确包名

import org.junit.Test;
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐