2011-08-23 23 views
5

Grails 1.3.7を使用しています。私は統合テストでリダイレクトをテストしようとしています。ここに私のコントローラおよび方法は...質問で私の統合テストでしかしGrails:統合テストでリダイレクトをテストする

class HomeController { 

def design = { 
    .... 
      if (params.page) { 
       redirect(uri: "/#/design/${params.page}") 
      } 
      else { 
       redirect(uri: "/#/design") 
      } 
      break; 
    } 
} 

で、「controller.response.redirectedUrl」への呼び出しは、私はリダイレクト呼び出しがあることを知っているにもかかわらず(常にnullを返します)失敗しています製作されました(ロギングを通じて検証済み)。以下の統合テストで何が問題になりますか?

class HomeControllerTests extends grails.test.ControllerUnitTestCase { 
    .... 

    void testHomePageDesign() { 
     def controller = new HomeController() 

     // Call action without any parameters 
     controller.design() 

     assert controller.response.redirectedUrl != null 

     assertTrue(responseStr != "") 
    } 

おかげで、 - デイブ

答えて

2

は、問題を修正する必要がありますGrailsUnitTestCaseを拡張するために、あなたのHomeControllerTestsを変更します。

class HomeControllerTests extends grails.test.GrailsUnitTestCase { 
    .... 
} 

テストクラスを生成するさまざまな方法はすべて、拡張されるクラスを変えるようです。 Test section of the Grails User Guideに従ってしかし

create-integration-test => GroovyTestCase 
create-unit-test => GrailsUnitTestCase 
create-controller => ControllerUnitTestCase 

GrailsUnitTestCaseは、少なくとも1.3.7で、それは上のベーステストクラスに最良のクラスである、試験フレームのコア部分であり。