【问题标题】:Grails Unit Testing IssuesGrails 单元测试问题
【发布时间】:2016-08-23 05:28:32
【问题描述】:

我在测试我的 grails 控制器时遇到问题,因为它依赖于一项似乎没有被注入的服务。我尝试了几种方法(例如扩展类,如 grailsunitestcase、规范),但我不断收到错误。问题是该服务变量为空,由于异常,我无法测试我的控制器索引方法(调用渲染视图)...... 我真的需要知道如何做到这一点,但我不知道从哪里开始......

【问题讨论】:

    标签: unit-testing grails grails-controller


    【解决方案1】:

    单元测试就是这样。控制器周围没有 grails '环境'。如果控制器使用通常注入的服务,则您必须自己模拟该服务。

    @TestFor(SomeController)
    @Mock([SomeService])
    class SomeControllerSpec extends Specification
        def "test some method"() {
            given:
                def mockService = mockFor(SomeService)
                mockService.demand.someServiceMethod() { ->
                    return something
                }
    
                controller.someService = mockService.createMock()
            when:
                controller.someControllerMethod()
            then:
               // whatever checks are appropriate
        }
    }
    

    【讨论】:

    • 嗨 railsdog...谢谢您的回答!我不知道发生了什么,但是当我提交项目时,被测试的控制器的服务被注入并且一切正常......但是突然间所有测试的方法都工作正常,但是减去一个......我看不到具体的事情发生但很好。 . 我知道没有应用程序服务器在运行,因此没有容器注入依赖项......我很沮丧,因为这可能意味着我进入了一家公司......再次感谢您的时间
    猜你喜欢
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多