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區(qū)別與應用場景
這篇文章主要介紹了解讀CommandLineRunner和@PostConstruct區(qū)別與應用場景,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

