我有組態檔:
@Configuration
public class UrlAnalyzerConfiguration {
@Bean
@Qualifier("usersDatabase")
public File getUsersDatabaseFile() {
return Paths.get("src/main/resources/database/users.csv").toFile();
}
@Bean
@Qualifier("urlsDatabase")
public File getUrlsDatabaseFile() {
return Paths.get("src/main/resources/database/urls.csv").toFile();
}
}
和測驗配置:
@TestConfiguration
public class TestConfig {
@Bean
@Qualifier("usersDatabase")
public File getUsersDatabaseTestFile() {
return Paths.get("src/test/resources/database/users.csv").toFile();
}
@Bean
@Qualifier("urlsDatabase")
public File getUrlsDatabaseTestFile() {
return Paths.get("src/test/resources/database/urls.csv").toFile();
}
}
我的存盤庫使用其中一個 bean:
private final File usersDatabase;
@Autowired
public UserRepositoryImpl(@Qualifier("usersDatabase") File usersDatabase) {
this.usersDatabase = usersDatabase;
}
我的存盤庫測驗檔案:
@SpringBootTest
@Import(TestConfig.class)
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
// tests here
}
結果我的主程式正常運行,但測驗失敗并顯示以下訊息:
不滿足的依賴通過建構式引數 0 表示;嵌套例外是 org.springframework.beans.factory.NoUniqueBeanDefinitionException:沒有可用的“java.io.File”型別的合格 bean:預期的單個匹配 bean,但發現 2:getUsersDatabaseTestFile,getUsersDatabaseFile
我發現了問題:
除了應用程式的主要配置之外,還使用 ??@TestConfiguration 類。這意味著,測驗一起使用@Configuration 和@TestConfiguration!但無論如何,我怎樣才能正確使用我的豆子?
uj5u.com熱心網友回復:
您可以使用的組合@Profile和@ActiveProfiles僅加載所需類的測驗。請參閱下面的原型。
配置
@Configuration
@Profile("test")
public class TestOnlyConfigs {
// define beans
}
測驗
@ActiveProfiles("test")
public class Tests {
// write tests
}
參考
- @輪廓
- @ActiveProfiles
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314201.html
上一篇:如何使用SpringProjections更新@Entity?
下一篇:java.lang.ClassNotFoundException:com.fasterxml.jackson.databind.exc.InvalidDefinitionException
