Я бы начал с того, что обернул это в интеграционный тест, который выглядел бы так:
import groovy.util.GroovyTestCase
import org.junit.Test
public class RegisterControllerTests extends GroovyTestCase {
@Test
void saveAction() {
def controller = new RegisterController() //or whatever the controller name is
controller.params.name = "SomethingUnique"
controller.params.email = "example@example.com"
controller.params.password = "password"
controller.params.signedIn = "false"
controller.register()
def registered = Registered.findByName("SomethingUnique")
assert "example@example.com" == registered.email
assert "password" == registered.password
assert false == registered.signedIn
}
}
Затем я бы начал с того, чтобы сделать действие вашего контроллера максимально простым:
def register={
String name = params.name
String email = params.email
String pass = params.password
boolean signedIn = params.signedIn
def rUser = new Registered()
rUser.name = name
rUser.email = email
rUser.password = pass
rUser.signedIn = signedIn
rUser.save(flush:true, failOnError:true) //I would remove the failOnError after you identify the issue.
}
Таким образом, вы можете быстро повторить тест и выяснить, где ваша проблема.Добавление failOnError:true
к вызову сохранения вызовет исключение, если оно не прошло проверку.Если этот простой пример работает, вернитесь к более элегантному решению, чтобы определить, где находится ваша проблема.