在Grails单元测试中注入服务

kuc*_*ram 10 grails unit-testing dependency-injection

我知道您可以使用以下方法在单元测试方法中简单地注入服务:

defineBeans {
   someService(SomeService)
}
Run Code Online (Sandbox Code Playgroud)

但是当我需要在服务中注入服务时(该服务someService自称为另一个服务some2Service).当我使用上面的代码运行测试时,我会收到:

Message: Cannot invoke method someMethod() on null object
Run Code Online (Sandbox Code Playgroud)

是否可以在单元测试中将服务注入服务?

谢谢.;-)

ata*_*lor 9

要在单元测试中使用spring bean,您需要执行以下操作:

  • defineBeans闭包中包括测试所依赖的所有服务和其他bean .
  • autowire属性设置true为需要注入其他bean的bean.

例如:

defineBeans {
    someService(SomeService) { bean ->
        bean.autowire = true
    }
    some2Service(Some2Service)
}
Run Code Online (Sandbox Code Playgroud)