解决单元测试无@SpringBootTest引发的空指针异常问题

近日在制作项目的途中进行了单元测试,但是遇到了NullPointerException空指针异常的问题,故作此记录

1、异常描述

  • 因为前端尚未搭建好界面,因此在后端业务逻辑写好之后便通过【SpringBoot单元测试】去做了一个测试,但是一开始测试的时候便引发了 空指针异常 的问题,记得之前有遇到过但是没有做记录,现今在遇到后进行了相关排查,发现了问题,故记录了下来

2、异常排查

  • 通过看到下面的异常信息"this.userMapper" is null那我第一时间肯定是去查看这个通过依赖注入的UserMapper
java 复制代码
@Autowired
private UserMapper userMapper;

① 类注解检查

  • 首先我去检查的就是这个@Mapper五大类注解,只有在当前的Mapper类加上了这个注解后才可以将其交托给Spring进行管理,此时依赖注入才会起作用

② 映射文件.xml格式配置检查

  • 第二块去检查的就是这个映射的.xml文件,【namespace】命名空间是否正确,以及.xml文件的格式是否正确

③ application.yml配置文件的检查

  • 但是在前两步都没问题的情况下,我又再次去检查了SpringBoot的 配置文件 ,因为有关myBatis的文件映射就是靠这里进行配置的

但是在排查了以上这些问题之后均没有发现问题

  • 那此时继续回本溯源,既然我们使用的是SpringBoot单元测试,那么就去单元测试里找问题吧,结合 SpringBoot面向注解开发 这个理念,于是我便注意到了@SpringBootTest这个注解

  • 那在加上这个注解之后我们再来看看空指针的异常是否解决
java 复制代码
@SpringBootTest
class UserMapperTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    void login() {
        String username = "admin";
        UserInfo userInfo = userMapper.login(username);
        System.out.println(userInfo);
    }
}
  • 可以看到,在加上@SpringBootTest这个注解后单元测试就很顺利地通过了

以上就是关于本次 单元测试无@SpringBootTest引发的空指针异常问题 所展开的一系列排查测试,望对您有帮助:rose:

相关推荐
汤姆yu3 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
暮色妖娆丶3 小时前
Spring 源码分析 单例 Bean 的创建过程
spring boot·后端·spring
biyezuopinvip5 小时前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
JavaGuide5 小时前
一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!
java·spring boot
figo10tf6 小时前
Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
java·spring boot·后端
zhangyi_viva6 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
橙露6 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
程序员敲代码吗6 小时前
Spring Boot与Tomcat整合的内部机制与优化
spring boot·后端·tomcat
NuageL6 小时前
原始Json字符串转化为Java对象列表/把中文键名变成英文键名
java·spring boot·json
jzheng86106 小时前
Spring Boot(快速上手)
java·spring boot·后端