2012-03-29 13 views
0

Ich habe vor kurzem von Grails 1.3.7 auf Grails 2.0.1 aktualisiert. Die Anwendung läuft normal, aber ich stehe bei der Bereinigung von Tests in diesem Problem.Grails 2.0.1: Spock-Test scheitert mit "Keine Bean namens" grailsLinkGenerator 'ist definiert "wo Redirect aufgerufen wird

Alle meine Tests sind Spocktests. Und ich habe spock von 0.5-groovy-1.7 auf 0.6 aktualisiert.

Alle Controller-Tests, die eine Linie der Umleitung erreichen() nicht in dieser Zeile mit dem gleichen Fehler:

No bean named 'grailsLinkGenerator' is defined 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'grailsLinkGenerator' is defined 

Jede Idee, was dieses verursachen und wie ich sie beheben kann?

Antwort

0

Dies begann für mich in einem Controller-Unit-Test durch Erweiterung Spocks ControllerSpec. Um es zu erweitern spock.lang.Specification es behoben.

Der Spec:

package fileupload2 

import static org.junit.Assert.assertThat 
import static org.hamcrest.core.Is.is 

import spock.lang.Specification; 

import grails.test.mixin.TestFor 
import grails.plugin.spock.ControllerSpec 

@TestFor(FileUploadController) 
//class FileUploadControllerSpec extends ControllerSpec { 
class FileUploadControllerSpec extends Specification { 

    def "the index should redirect to create"() { 

     when: 
      controller.index() 

     then: 
      assertThat(response.redirectedUrl, is('/fileUpload/create')) 
    } 

} 

Die CUT:

package fileupload2 

class FileUploadController { 

    def fileUploadService 

    def index() { 
     redirect (action: "create") 
    } 

    def create() { 
     render(view: 'create') 
    } 

    def upload() { 
     ... 
    } 

} 

Ich bin nur ungern, dies zu sagen ist ein Fehler, wie ich ca. 2 Wochen in diesem bin.

Erweitern UnitSpec scheint auch zu funktionieren.