Grails 单元测试问题
Posted
技术标签:
【中文标题】Grails 单元测试问题【英文标题】:Grails Unit Testing Issues 【发布时间】:2016-08-23 05:28:32 【问题描述】:我在测试我的 grails 控制器时遇到问题,因为它依赖于一项似乎没有被注入的服务。我尝试了几种方法(例如扩展类,如 grailsunitestcase、规范),但我不断收到错误。问题是该服务变量为空,由于异常,我无法测试我的控制器索引方法(调用渲染视图)...... 我真的需要知道如何做到这一点,但我不知道从哪里开始......
【问题讨论】:
【参考方案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...谢谢您的回答!我不知道发生了什么,但是当我提交项目时,被测试的控制器的服务被注入并且一切正常......但是突然间所有测试的方法都工作正常,但是减去一个......我看不到具体的事情发生但很好。 . 我知道没有应用程序服务器在运行,因此没有容器注入依赖项......我很沮丧,因为这可能意味着我进入了一家公司......再次感谢您的时间以上是关于Grails 单元测试问题的主要内容,如果未能解决你的问题,请参考以下文章