springboot @Test單元測試獲取注入的bean物件
阿新 • • 發佈:2020-12-31
1.情景展示
在springboot專案中,寫了測試方法
執行該方法,通過註解注入的物件,卻獲取不到
2.原因分析
起初,我以為拿不到這個物件,是因為該類沒有注入到spring容器中,所以,拿不到。(普通情況下,原因就是如此,但Junit不是因為這)。
將該類注入到spring中,同樣無效。
3.解決方案
我們需要在類上新增以下程式碼:
@RunWith(SpringRunner.class) @SpringBootTest(classes = {專案啟動類.class})
這次,就能拿到物件啦。
我們會發現:
通過這種方式,在執行@Test之前,會啟動這個專案,然後物件才會被注入到單元測試所在類中。
並且,這個專案的生命週期為@Test的執行時長;
另外,這個專案的執行和專案執行本身沒有衝突,互不影響(可以理解為兩個不同的程序)。
這可能與它們的執行器有關
寫在最後
哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!