我在测试运行时依赖于其他服务的应用程序的服务。测试时,依赖注入似乎不起作用。运行集成测试时,依赖注入在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