我有一個簡單的Spring引導應用程序結構如下春季啓動應用程序的測試策略建議
src/main/java
com
+- example
+- myproject
+- Application.java
|
+- config
| +- SpringConfig.java
|
+- service
| +- DBService.java
src/main/test
com
+- example
+- myproject
+- config
| +- MyTestRoot.java
src/test/resources
applicationContext-test.xml
Application.java標註有
@SpringBootApplication
@EnableJms
@ComponentScan
@EnableTransactionManagement
@EnableAutoConfiguration
SpringConfig.java標註有@Configuration並具有方法返回DBService的一個新實例。該方法用@Bean註釋
@Bean
public DBService dbService() {
return new DBService();
}
DBService類具有自動裝入的存儲庫。這些存儲庫來自另一個項目依賴項,並提供與RDBMS/Data Store的連接。
我定義的的applicationContext-的test.xml
<bean id="dbService" class="com.path.to.class.in.dependency"/>
豆當我在我的測試類的自動裝配dbService,我得到一個錯誤「錯誤與名製作豆‘dbServices’:自動裝配Autowired依賴注入失敗;」
我在做什麼錯在這裏?我使用的是spring boot 1.3.5,不能使用@SpringBootTest註釋,因爲它可以從1.4開始使用。任何幫助都感激不盡。
編輯: 由於依次DbService類是指倉庫類(userRepositoty,customerRepository等等),我試圖在測試方面的文件也定義豆的倉庫。但是,我在DbService類(Main)中注入的存儲庫是接口,而Spring Boot框架會在運行時自動解析我的實際實現。我不確定如何在測試環境中執行此操作。
@Maciej,謝謝你的回答,但這是我目前的問題。我的主要自動裝載存儲庫中的「DbService」被定義爲接口。在運行時,Spring/Spring Boot自動爲我提供了我的項目依賴關係中的那些接口的實現。我試圖在我的測試類「MyTestRoot」中注入「DbService」,我無法知道如何告訴spring在運行單元測試時獲取存儲庫的具體實現。它會拋出一個錯誤:'code'創建名爲'dbServices'的bean時出錯:注入自動裝載的依賴關係失敗'代碼' –
更新您的測試類的問題。我想你可能錯過了那裏的一些東西。 –