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>
标签:lang,java,yue,Spring,Junit,import,org,com,junit
From: https://www.cnblogs.com/magicYue/p/18224742