3 回答

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

TA貢獻1834條經驗 獲得超8個贊
我想是因為你已經這樣注釋了:
@SpringBootTest (classes=MyConfig.class)
Spring 只會尋找MyConfig.class
合適的 bean 而無法為 找到一個MyService
,但是,我認為當應用程序正常運行時,Spring 會掃描所有包以查找 bean。這就是它在非測試中工作正常的原因。

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 {
}
添加回答
舉報