SpringBoot测试类注入Bean失败的原因及分析
更新时间:2024年09月22日 10:04:56 作者:苍煜
SpringBoot 2.2版本前后测试类有所变化,2.2版本之后使用JUnit 5,导入注解@SpringBootTest和@Test来自junit.jupiter.api包;而2.2版本之前使用JUnit 4,需要额外导入@RunWith注解来自junit.runner包,无论哪个版本,都需确保测试类和启动类的包名一致
针对SpringBoot的测试类,2.2版本之前和之后是不一样的。
2.2版本之后
导包pom.xml
添加test依赖
<!-- starter-test:junit + spring-test + mockito -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>注解
- @SpringBootTest—import org.springframework.boot.test.context.SpringBootTest;
- @Test—import org.junit.jupiter.api.Test;
测试
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author wangkanglu
* @version 1.0
* @description
* @date 2024-07-07 11:32
*/
@SpringBootTest
public class TestMain {
@Test
public void test1(){
System.out.println("-----");
}
}
2.2版本之前
导包pom.xml
添加test依赖
<!-- starter-test:junit + spring-test + mockito -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>注解
- @SpringBootTest—import org.springframework.boot.test.context.SpringBootTest;
- @RunWith(SpringRunner.class)—import org.junit.runner.RunWith;
- @Test—import org.junit.Test;
测试
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author wangkanglu
* @version 1.0
* @description
* @date 2024-07-07 11:32
*/
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestMain {
@Test
public void test1(){
System.out.println("-----");
}
}
注意包路径需要一致
注意测试类的包名和启动类的包名一定要一致,否则扫描不到bean对象会报空异常,如下图:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java连接MySQL8.0 JDBC的详细步骤(IDEA版本)
这篇文章主要介绍了Java连接MySQL8.0 JDBC的详细步骤(IDEA版本),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-04-04
idea指定maven的settings文件不生效的问题解决
本文主要介绍了idea指定maven的settings文件不生效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-06-06
解读CommandLineRunner和@PostConstruct区别与应用场景
这篇文章主要介绍了解读CommandLineRunner和@PostConstruct区别与应用场景,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12


最新评论