Unit testing 在Grails单元测试中注入服务
我知道您可以使用以下方法简单地在单元测试方法中注入服务:Unit testing 在Grails单元测试中注入服务,unit-testing,grails,dependency-injection,Unit Testing,Grails,Dependency Injection,我知道您可以使用以下方法简单地在单元测试方法中注入服务: defineBeans { someService(SomeService) } 但是当我需要在服务中注入服务时(服务someService调用另一个服务some2Service)。当我使用上述代码运行测试时,我收到: Message: Cannot invoke method someMethod() on null object 是否可以在单元测试中将服务注入到服务中 谢谢 您可以使用ref设置您的成员变量,该变量是服务变量
defineBeans {
someService(SomeService)
}
但是当我需要在服务中注入服务时(服务someService
调用另一个服务some2Service
)。当我使用上述代码运行测试时,我收到:
Message: Cannot invoke method someMethod() on null object
是否可以在单元测试中将服务注入到服务中
谢谢 您可以使用ref设置您的成员变量,该变量是服务变量
MyService(MyProvider) {
userDetailsService = ref("userDetailsService")
springSecurityService = ref("springSecurityService")
userService = ref("userService")
}
希望这有助于在单元测试中使用SpringBean,您需要执行以下操作:
- 在
闭包中包括测试所依赖的所有服务和其他beandefineBeans
- 对于需要注入其他bean的bean,将
属性设置为autowire
true
defineBeans {
someService(SomeService) { bean ->
bean.autowire = true
}
some2Service(Some2Service)
}
Grails2.24支持它吗?Grails2.2.4版本支持它吗?是的。。。我使用的是1.3.6版