我正在尝试为注入(inject)了 spring bean 的服务编写集成测试。 spring bean 定义在 resources.groovy .我的服务正在使用的 bean 似乎没有在我的集成测试中被注入(inject),但是当我运行 grails run-app 时它被很好地注入(inject)了。 .
这是一个最小的失败示例:grails-app/conf/spring/resources.groovy
beans = {
myBean(Object){}
}
grails-app/services/MyService.groovy
class MyService {
def myBean
def serviceMethod(){
myBean.class.simpleName
}
}
grails-app/src/integration-test/groovy/MyServiceSpec.groovy
@Integration
class MyServiceSpec extends Specification {
def myService
when:
def myBean = myService.myBean
then:
myBean != null
}
Grails 版本信息:
$ grails -v
| Grails Version: 3.1.9
| Groovy Version: 2.4.7
| JVM Version: 1.8.0_92
更新:
Spring 似乎可以很好地注入(inject)其他服务。如果我在
MyService 中声明另一个服务,它被注入(inject)。
class MyService {
def myBean
def myOtherService
def serviceMethod(){
myBean.class.simpleName
}
}
请您参考如下方法:
我可能迟到了……但是,对于 future 的读者,请尝试设置 grails.gorm.autowire至true在您的 application.yml




