简体   繁体   English

Grails单元测试问题

[英]Grails Unit Testing Issues

I am having issues while testing my grails controllers, as it depends on one service which seems not to be injected. 我在测试grails控制器时遇到问题,因为它取决于一项似乎未注入的服务。 I tried several ways (for ex. Extending classess like grailsunitestcase, specification) but I keep getting errors. 我尝试了几种方法(例如,扩展诸如grailsunitestcase,spec之类的类),但我不断出错。 The thing is that that service variable is null and I cant test my controller index method (which calls a render view) due to the exception... I really need to know how to do this but I don't have a clue where to start... 事实是该服务变量为null,由于异常,我无法测试我的控制器索引方法(该方法称为渲染视图)...我确实需要知道如何执行此操作,但是我不知道在哪里开始...

Unit tests are just that. 单元测试就是这样。 There is no grails 'environment' surrounding your controller. 控制器周围没有grails的“环境”。 If the controller makes use of a service which is normally injected, you have to mock that service yourself. 如果控制器使用通常注入的服务,则您必须自己模拟该服务。

@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
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM