2011-08-23 18 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 { 
    .... 
} 

테스트 클래스를 생성하는 다양한 방법은 모두 확장되는 클래스를 변경하는 것처럼 보입니다.

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

그러나 Test section of the Grails User Guide에 따른 적어도 1.3.7에서는 테스트 프레임의 코어 부분 GrailsUnitTestCase하고, 그상의베이스 테스트 클래스 가장 클래스이다.

관련 문제