10

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

defineBeans {
   someService(SomeService)
}

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

Message: Cannot invoke method someMethod() on null object

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

谢谢。;-)

4

2 回答 2

9

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

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

例如:

defineBeans {
    someService(SomeService) { bean ->
        bean.autowire = true
    }
    some2Service(Some2Service)
}
于 2012-09-06T16:26:36.470 回答
0

您可以使用 ref 设置作为服务的成员变量

MyService(MyProvider) {
        userDetailsService = ref("userDetailsService")
        springSecurityService = ref("springSecurityService")
        userService = ref("userService")
    }

希望有帮助

于 2012-09-06T15:57:27.607 回答