unit-testing - 在 Grails 单元测试中注入(inject)服务

标签 unit-testing grails dependency-injection

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

defineBeans {
   someService(SomeService)
}

但是当我需要在服务中注入(inject)服务时(服务 someService 调用自己另一个服务 some2Service )。当我使用上面的代码运行测试时,我收到:
Message: Cannot invoke method someMethod() on null object

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

谢谢。 ;-)

最佳答案

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

  • defineBeans 中包含测试所依赖的所有服务和其他 bean关闭。
  • 设置autowire属性(property)给 true对于需要注入(inject)其他 bean 的 bean。

  • 例如:
    defineBeans {
        someService(SomeService) { bean ->
            bean.autowire = true
        }
        some2Service(Some2Service)
    }
    

    关于unit-testing - 在 Grails 单元测试中注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302880/

    相关文章:

    javascript - 类型错误 : Cannot read property 'getAccounts' of undefined

    c# - 集成测试将数据库文件添加到我的测试项目。我该怎么做

    javascript - 用 Jest 和 sequelize-mock 模拟 Sequelize

    grails - Grails无法使用自定义附加程序将消息打印到日志文件

    grails - 将GSP页面呈现到Web应用子文件夹中的文件

    c# - 仅当值在运行时使用 Unity 为非空时,如何才能注入(inject)属性?

    c# - 如何在单元测试中测试两个对象是否相等?

    javascript - 如何使用特定于浏览器的执行来测试功能?

    java - 带有服务的Grails规范测试

    java - 为什么使用@PostConstruct?