當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot在使用测试的时候是否需要@RunWith?
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot在使用测试的时候是否需要@RunWith?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在使用SpringBoot進行測試的時候一般是需要加兩個注解:
- @SpringBootTest
- 目的是加載ApplicationContext,啟動spring容器。
- @RunWith
- 是一個測試啟動器,可以加載SpringBoot測試注解
- 讓測試在Spring容器環境下執行。如測試類中無此注解,將導致service,dao等自動注入失敗
但是我們有時候在使用的時候會發現不需要@RunWith注解,也可以運行測試類。在網上查了很多資料,有很多人說是IDEA編譯器的原因,暫且不說他們說的是否正確,我發現的原因與他們并不一樣。
我發現根本原因是:@Test的導包問題
我們在使用@Test實際上有兩個導包選擇:
如果我們使用的是org.junit.jupiter.api包下的Test注解,那么我們是不需要@RunWith注解的。
而如果我們使用的是org.junit包下的Test注解,那么就需要@RunWith注解,如果我們不使用的話會出現空指針的情況:
這個啟動器使用SpringJUnit4ClassRunner或者SpringRunner都可以。
實際上SpringRunner繼承了SpringJUnit4ClassRunner:
總結
以上是生活随笔為你收集整理的SpringBoot在使用测试的时候是否需要@RunWith?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人与自然超越彩虹-上
- 下一篇: Python读取tsv文件数据