Einträge, die in Instanzen von Domain-Klassen gemacht wurde können mit Hilfe von "constraints" auf Validität überprüft werden. Dazu legt man in der Domain-Klasse eine "constraints"-Closure an, die Einträge der Instanz werden dann überprüft, wenn man die Instanz mit der "validate"-Methode aufruft. Dies ist auch über die "save"-Methode möglich, da diese die "validate"-Methode verwendet.
class User {
String login
String password
String email
def constraints = {
login( length : 5..15 , blank : false , unique : true )
password( length : 5..15 , blank : false )
email( email : true , blank : false )
}
}
def user = new User()
user.validate()
user.save()
Es gibt noch einige vordefinierte Überprüfungsroutinen mehr, diese findet man hier.
Unit-Testing in Groovy ist ähnlich wie das Testen mit JUnit. Man erstellt eine Klasse im Verzeichnis "grails-test", diese muss auf "Tests.groovy" enden und "GroovyTestCase" erweitern. Eine Testklasse könnte ungefähr so aussehen:
class BookTests extends GroovyTestCase {
def testValid() {
def b = new Book( title : "Groovy in Action" , author : "Dierk Koenig" )
assert b.validate()
}
}
Die Testklasse kann dann über das Kommando "grails test-app" gestartet werden.
Funktionales Testen ist mit dem Canoo Webtest möglich. Canoo.com