2016-04-28 142 views
0

我在测试我的grails控制器时遇到问题,因为它取决于一个似乎没有被注入的服务。我尝试了几种方法(例如扩展grailsunitestcase,规范等类),但是我一直在收到错误。事情是,该服务变量为空,我不能测试我的控制器索引方法(它调用渲染视图),由于例外... 我真的需要知道如何做到这一点,但我没有一个线索开始...Grails单元测试问题

回答

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 
    } 
} 
+0

railsdog嗨...... Thankx你的答案!我不知道发生了什么事,但是当我将项目中的受控控制器的服务交给注入并且所有工作正常时......但突然间,所有测试的方法都可以正常工作,但是减去一个...... Icant看到了具体发生的事情但很好。 。我知道没有应用程序服务器运行,因此没有容器注入依赖关系...我很沮丧,因为这可能意味着我进入一家公司... Thankx再次花时间为你的时间 – AgusDesign