| 

.NET C# Java Javascript Exception

Persistieren in Tests

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.


Persistieren in Tests

tmaus - 08.01.2009 09:33
Ich habe eine simple Anwendung,
eine User Domain,
einen UserController
sowie den Integrationstest UserControllerTests
Alles fein säuberlich mit den grails Kommandos erstellt.

Der ControllerTest sieht folgendermaßen aus:
class UserControllerTests extends GroovyTestCase {

	User user
	UserController uc
	
    void setUp() {
    	user = new User(login:"user1", password:"passwd1")
    	user.save()
    	uc = new UserController()
    }
	
	void tearDown(){
		user.delete()
	}
	
	void testHandleLogin(){
    	
		uc.params.login = user.login
		uc.handleLogin()
		
		def sessUser = uc.session.user
		assert sessUser
	}
}

Der UserController ist noch einfacher:
class UserController {

    def scaffold = User
    
    def login = {
    		log.debug "reached login"
    }
    
    def handleLogin = {
    		log.debug "Users: ${User.count()}"
    		log.debug "reached handleLogin"
    		def user = User.findByLogin(params.login)
    		if(!user){
    			log.debug "user for [login:${params.login}] not found"
    			flash.message = "User not found for login: ${params.login}"
    			redirect(action:'login')
    		}
    		session.user = user
    		redirect(controller:'wormhole')
    }    
}

User:
class User {
	String login
	String password
	Date createDate
	Date lastUpdated
	
	static mapping = {autoTimestamp false}
	
	String toString() {
		login
	}
}


Die Logausgabe dazu:
Running 1 Integration Test...
Running test UserControllerTests...
                    testHandleLogin...[3981] controller.UserController Users: 0
[3981] controller.UserController reached handleLogin
[4001] controller.UserController user for [login:user1] not found
FAILURE
Integration Tests Completed in 1031ms

Das Problem was ich in dem Test habe ist, dass der User in der DB nicht gefunden wird und das das debug auf User.count() 0 anzeigt.
Für mich heißt das, dass er niemals angelegt wurde.
Hibernate im debug Modus laufen lassen zeigt mir, dass kein Insert Statement ausgeführt wurde.

Hat jemand einen Schimmer wieso ???


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Persistieren in Tests" 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.