2016-04-28 7 views
0

Grailsコントローラのテスト中に問題が発生しました。これは、注入されていないと思われるサービスに依存します。私はいくつかの方法を試しました(例えば、grailsunitestcaseのようなclassessを拡張して、仕様)が、私はエラーを取得し続けます。問題は、そのサービス変数がnullであり、例外のために(レンダリングビューを呼び出す)コントローラインデックスメソッドをテストできないということです。 私は実際にこれを行う方法を知る必要がありますが、手がかりはありません。開始する...Grailsユニットテストの問題

答えて

1

単体テストはそれだけです。あなたのコントローラーを囲むグレーズの「環境」はありません。コントローラが正常に注入されたサービスを利用している場合は、あなた自身でそのサービスをモックする必要があります。

@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 ...感謝のあなたの答え!私は何が起こったのか知らなかったが、テストされたコントローラのサービスは、注入されたすべてが正常に動作していたので、プロジェクトに手渡した。しかし突然、テストされたすべてのメソッドは正常だったが、マイナス1であった。私はアプリケーションサーバーが稼働していないことを理解しているので、依存関係を注入するコンテナはありません...私はこれが私の会社に入ることを意味するかもしれないということに失望しています...あなたの時間 – AgusDesign

関連する問題