亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Junit5 Spring Boot Autowire ComponentScan 不工作

Junit5 Spring Boot Autowire ComponentScan 不工作

慕容708150 2021-09-29 10:35:48
我的問題:如果我的測試引用@Bean中列出的類中的聲明,則@SpringBootTest自動裝配工作。如果它引用@ComponentScan由 中列出的類自動連接的類@SpringBootTest,則自動裝配失敗。在測試之外,我的應用程序啟動時沒有自動裝配或組件掃描問題,并且我可以確認我要在測試中加載的服務在非測試中運行良好。我很沮喪。我壞了,還是 Spring Boot 2 上的 Junit5 功能?我的測試:@ExtendWith(SpringExtension.class)@SpringBootTest (classes=MyConfig.class)public class MyTest {    // fails to autowire    @Autowired    private MyService _mySvc ;    // succeeds!    @Autowired @Qualifier ( "wtf" )    private String _wtf ;我的配置:@EnableWebMvc@SpringBootApplication ( scanBasePackages = "my.packaging" )@Configurationpublic class MyConfig {    @Bean    public String wtf ( ) { return "W T F???" ; }    // No @Bean for MyService because component scan is nicer in the non-test world
查看完整描述

3 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

盡管測試開始了,但我遇到了與自動裝配不起作用的相同問題,問題是我仍在使用舊的 junit4 @Test 注釋。確保您的測試方法使用 juni5 包 org.junit.jupiter.api.Test 中的 @Test 進行注釋。


查看完整回答
反對 回復 2021-09-29
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

我想是因為你已經這樣注釋了:

@SpringBootTest (classes=MyConfig.class)

Spring 只會尋找MyConfig.class合適的 bean 而無法為 找到一個MyService,但是,我認為當應用程序正常運行時,Spring 會掃描所有包以查找 bean。這就是它在非測試中工作正常的原因。


查看完整回答
反對 回復 2021-09-29
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

也許你可以添加 @ContextConfiguration(classes = ApplicationConfiguration.class)


它看起來像這樣


import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.ContextConfiguration;

import example06.junit.group01.Piano;


@SpringBootTest

@ContextConfiguration(classes = ApplicationConfiguration.class)

public class ApplicationConfigurationTest {

    @Autowired

    private Piano piano;

    

    @Test

    public void shouldTestPiano() {

        System.err.println("Testing JUnit5 > " + piano);

    }

}

我的配置是一個簡單的類


@Configuration

@ComponentScan

public class ApplicationConfiguration {


}


查看完整回答
反對 回復 2021-09-29
  • 3 回答
  • 0 關注
  • 347 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號