| 

.NET C# Java Javascript Exception

Unit - Testing - Problem !!

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Unit - Testing - Problem !!

LucianTheDark - 23.07.2009 12:58
Hallo allerseits,

ich habe ein Problemn beim Erstellen eines Unittests für Controller und habe im Netz und im Forum keine sinvolle Lösung gefunden.

Die Action im Controller sieht wie folgt aus:

 def register = {
        def refUser = new User();
        def userInstance = new User();
        def groupID = "";

        if(params.refID){
            refUser = User.get(params.refID)
        }
        if(params.groupsID){
            groupID = params.groupsID;
        }
        userInstance.properties = params;
        def isoList = ReadXMLService.readXMLtoIsoList("/Users/mploch/test.xml");
        render(view:'register',model:[isoList:isoList, userInstance:userInstance, groupID:groupID, refUser:refUser])
    }

der zugehörige Test sieht wie folgt aus:


    void testRegistration() {
       UserController.metaClass.getParams = {-> [groupsID:1]}
       def userC = new UserController()
       userC.ReadXMLService = ReadXMLService;
       userC.register();
       println userC.response.contentAsString;
    }

damit habe ich eigentlich alles abgedeckt.
Mein Problem ist folgendes wenn ich den Test laufen lasse erhalte ich folgende Fehlermeldung


Cannot set readonly property: properties for class: User

groovy.lang.ReadOnlyPropertyException: Cannot set readonly property: properties for class: User
at User.setProperty(User.groovy)
at UserController$_closure2.doCall(UserController.groovy:41)
at UserController$_closure2.doCall(UserController.groovy)
at UserControllerTests.testRegistration(UserControllerTests.groovy:16)
at _GrailsTest_groovy$_run_closure4.doCall(_GrailsTest_groovy:202)
at _GrailsTest_groovy$_run_closure2.doCall(_GrailsTest_groovy:146)
at _GrailsTest_groovy$_run_closure1_closure19.doCall(_GrailsTest_groovy:112)
at _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:95)
at TestApp$_run_closure1.doCall(TestApp.groovy:66)
at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:344)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:334)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:495)
at gant.Gant.processTargets(Gant.groovy:480)

Kann mir jemand erklären warum ich im Dev Betrieb die Properties für das User Objekt setzen kann und im Testfall nicht.

Wenn sozusagen an einem Reg-Link der neue Name und Nachname hängt wird dieres direkt in mein Formular eingesetzt das klappt auch im WebTest echt gut.
Nur leider hier nicht.

Grüße Marcel


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Unit - Testing - Problem !!" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.