SpringBoot項目中@Test不出現可點擊運行的按鈕問題
@Test不出現可點擊運行的按鈕
SpringBoot項目的test包裡用來做測試的*****Test類裡面的@Test單元測試不起作用,即左邊沒有可以運行的按鈕,如下圖-1所示:
圖-1
這時我們看到@SpringBootTest註解也有,@Test註解也有,但是左邊沒有可運行的按鈕,原因是這個類和類裡的方法都不是公開(public)的,需要在class前加上public,也需要在類裡的方法前面也加上,比如這個要在contextLoads方法的void前面也加上public,都加上後就能出現想要的效果瞭,如下圖-2所示:
此時,左邊就出現瞭能夠點擊運行的三角按鈕,就可以用這個類寫方法測試瞭。
單元測試中有瞭@Test註解但是idea沒有執行的按鈕
打算給自己的demo弄一個單元測試碰到的一些坑,我從其他項目復制一份單元測試發現左側沒有執行按鈕
我去我另外一個項目左看右看瞭老半天沒找發現問題,然後我就想這個會不會是因為導入的包不一樣所以出現瞭問題
org.junit.jupiter.api.Test和org.junit.Test就是這兩個
查閱瞭下資料,原理是
- spring boot 2.2之前使用的是 Junit4:org.junit.Test
- spring boot 2.2之後使用的是 Junit5:org.junit.jupiter.api.Test
看瞭一下項目springboot版本果然不一樣
解決辦法
如果你用的版本是spring boot 2.2之前的版本你給他加上public就行
擴展
@RunWith(SpringRunner.class)的作用
註解的意義在於Test測試類要使用註入的類,比如@Autowired註入的類有瞭@RunWith(SpringRunner.class)這些類才能實例化到spring容器中,自動註入才能生效,不然直接一個NullPointerExecption
@SpringBootTest(classes = SpringBootShardingsphereDemoApplication.class)
該註解是用到類名上,表示自動啟動加載類或指定某個或多個加載啟動類,默認會加載當前module下的啟動類
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 解決SpringBoot 測試類無法自動註入@Autowired的問題
- 解決Spring boot 整合Junit遇到的坑
- springBoot Junit測試用例出現@Autowired不生效的解決
- 單元測試 @mock與@SpringBootTest的使用
- Springboot使用test無法啟動問題的解決