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>
本文作者:粤先生
本文链接:https://www.cnblogs.com/magicYue/p/18224742
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。