2016-04-28 144 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