2011-08-23 11 views
5

Estoy usando Grails 1.3.7. Estoy intentando probar una redirección en mi prueba de integración. Aquí está mi controlador y método en cuestión ...Grails: probando una redirección con una prueba de integración

class HomeController { 

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

Sin embargo en mi prueba de integración, la llamada a "controller.response.redirectedUrl" está fallando (siempre devuelve un valor nulo), aunque sé que la llamada está siendo redirección hecho (verificado a través del registro). ¿Qué pasa con la prueba de integración a continuación?

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

Gracias, - de Dave

Respuesta

2

Cambiar sus HomeControllerTests extender GrailsUnitTestCase debería solucionar el problema.

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

Las diversas formas de generar una clase de prueba parecen variar según la clase extendida.

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

Sin embargo, de acuerdo con la Test section of the Grails User Guide, GrailsUnitTestCase es la parte central del bastidor de pruebas y, al menos en 1.3.7, que es la mejor clase para clases de prueba base sobre.

Cuestiones relacionadas