我在測試運行時依賴於其他服務的應用程序的服務。測試時,依賴注入似乎不起作用。運行集成測試時,依賴注入在Grails artefact中起作用嗎?Grails集成測試中的依賴注入
6
A
回答
8
是的,當運行測試(即集成目錄中的測試)時,應用程序啓動並且所有的bean都被創建並注入,就像應用程序實際運行一樣。測試應用程序和正在運行的應用程序之間的唯一區別應該是配置環境。
當然,如果你在你的測試中實例化一個需要使用'new'操作符注入的類,你將不會得到DI的好處。相反,爲bean創建測試用例屬性的測試,其結果將被注入:
class MyServiceTests extends GrailsUnitTestCase {
MyService service
void testInjection() {
assertNotNull service
}
}
4
對於那些使用Grails 1.3.7你,我發現,你不能用類名爲了讓依賴注入工作。相反,宣佈服務爲:
def myService
然後發生DI魔術。通過1.3.7中的上述代碼,not null斷言將失敗。
+0
1.3.7以上。這在2.4.x中也是一個問題。另外,對於控制器集成測試,您必須實例化控制器:'def fooController = new FooController()' - 則依賴關係將被正確連接。 – 2015-09-25 18:09:20
相關問題
- 1. 依賴注入和測試
- 2. Grails集成測試和會話注入
- 3. Grails測試集成,控制器注入
- 4. Grails測試集成服務注入
- 5. 單元測試中的依賴注入
- 6. OSGi中的依賴注入vs測試
- 7. 彈性集成測試依賴注入控制器
- 8. NUnit集成測試和依賴項注入
- 9. 在Grails Spock規範測試中注入依賴項
- 10. Grails @DelegateAsync和依賴注入
- 11. Grails依賴注入問題
- 12. 依賴項注入Grails Webflow
- 13. 依賴注入的測試優勢
- 14. PlayFramework:集成春天依賴注入PlayFramework
- 15. 爲什麼在開發我的grails插件時集成測試中的依賴注入失敗
- 16. Grails的 - 如何在注入集成測試中resources.groovy定義豆
- 17. Angular2依賴注入和單元測試
- 18. 單元測試 - 依賴注入zf2
- 19. Scalamock測試Java依賴注入
- 20. 向測試注入依賴關係
- 21. C++和依賴注入單元測試
- 22. Laravel單元測試依賴注入
- 23. 深度/嵌套依賴注入測試
- 24. 你如何測試依賴注入?
- 25. 單元測試C#MOQ依賴注入
- 26. 依賴注入和測試雙打
- 27. 單元測試和依賴注入深度嵌套依賴
- 28. 使用Grails Spring DSL的依賴注入
- 29. Grails的依賴注入不起作用
- 30. 服務之外的Grails依賴注入?
謝謝。我正在測試一項依賴於其他服務的服務,並且我正在對它進行實例化,正因爲如此,我沒有得到DI的好處。 – Lucas 2010-02-16 15:37:27
只是一個側面說明。集成測試不應該根據版本擴展GrailsUnitTestCase,這可能會導致您的ConfigurationHolder.config爲空的嚴重問題。是的,許多版本的grails create-integration-test確實會創建一個擴展GrailsUnitTestCase的測試,但這是一個最近已經修復的bug。 – 2011-01-31 20:30:56
爲什麼答案會說「當然,如果你實例化一個需要注射的類」你不會得到DI?爲什麼通常是這種情況?這對我來說並不明顯 - 儘管我痛苦地想出了它。 – 2012-11-25 01:09:16