2011-08-23 24 views
5

Grails 1.3.7 kullanıyorum. Entegrasyon testimde bir yönlendirmeyi test etmeye çalışıyorum. İşte benim denetleyicisi ve söz konusu yöntemi ... benim entegrasyon testinde Ancak Grails: bir tümleştirme sınamasıyla bir yönlendirmeyi sınama

class HomeController { 

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

, çağrı için "controller.response.redirectedUrl" Ben yönlendirme çağrı olmak olduğunu bildiğimiz halde (her zaman null döndürür) başarısız olduğunu yapıldı (günlüğe kaydetme yoluyla doğrulandı). Aşağıdaki entegrasyon testinde sorun nedir?

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

Teşekkürler, - Dave

cevap

2

sorunu çözmek gerekir GrailsUnitTestCase uzatmak için HomeControllerTests değiştirme.

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

Test sınıfı oluşturmanın çeşitli yolları, genişletilen sınıfı değiştirebilir.

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

Ancak Test section of the Grails User Guide göre en az 1.3.7 içinde, test çerçevesinin önemli parçasıdır GrailsUnitTestCase ve bu taban testi sınıflara iyi sınıftır.