Spring 项目整合 Junit 一直报 java.lang.NullPointerException空指针异常

1.异常信息

java.lang.NullPointerException: Cannot invoke "com.yue.service.StudentService.changeInfo()" because "this.studentService" is null

2.测试代码

package com.yue.test;

import com.yue.config.DataSourceConfig;
import com.yue.service.StudentService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;

@SpringJUnitConfig(value = DataSourceConfig.class)
public class TxTest {

    @Autowired
    private StudentService studentService;

    @Test
    public void testTx(){
        studentService.changeInfo();
    }
}

3.问题分析

  • 测试代码是没有问题的;
  • 问题的关键是:Junit不适合在spring项目使用,应该使用Junit5;
  • Spring 整合Junit5 的其中一种方式是:@SpringJUnitConfig(classes = SpringConfiguration.class)。

4.解决方案

  • 删除 import org.junit.Test;, 以及删除pom.xml文件Junit的依赖
  • 在pom.xml文件导入Junit5的依赖包
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.10.0</version>
</dependency>
posted @ 2024-05-31 16:03  粤先生  阅读(173)  评论(0)    收藏  举报