2011-08-23 17 views
5

Używam Grails 1.3.7. Próbuję przetestować przekierowanie w moim teście integracji. Tu jest mój kontroler i sposób w pytaniu ...Grails: testowanie przekierowania za pomocą testu integracji

class HomeController { 

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

Jednak w moim teście integracyjnym, wezwanie do „controller.response.redirectedUrl” zawodzi (zawsze zwraca null), chociaż wiem, że to jest przekierowanie połączeń wykonane (zweryfikowane przez logowanie). Co jest nie tak z poniższym testem integracyjnym?

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 != "") 
    } 

Dzięki, - Dave

Odpowiedz

2

Zmiana HomeControllerTests przedłużyć GrailsUnitTestCase powinno rozwiązać problem.

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

Różne sposoby generowania klasy testowej wydają się różnić w stosunku do rozszerzanej klasy.

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

Jednak według Test section of the Grails User Guide, GrailsUnitTestCase jest główną częścią ramy badania i co najmniej 1.3.7, który jest najlepszym klasa grup testowych na bazie.

Powiązane problemy