Meine allgemeine Regel ist zu testen, was ich schreibe. Wenn ich also benutzerdefinierte Methoden (oder Schließungen) schreibe, teste ich diese dann einzeln. Diese Regel bedeutet auch, dass ich Constraints testen werde, seit ich die Constraints geschrieben habe. Dafür verwende ich die Methode mockForConstraintsTests() in GrailsUnitTestCase.
Ein Beispiel Einschränkungen blockieren:
static constraints = {
location(blank:true, nullable:true)
make(blank:false, nullable:false)
name(blank:false, nullable:false)
serviceTag(nullable:true)
purchaseDate(blank:false, nullable:false)
checkedDate(blank:false, nullable:false)
warrantyExpirationDate(nullable:true)
notes(blank:true, nullable:true)
}
Ich würde die folgenden Einschränkungen Unit-Test haben:
void test_null_constraints_are_checked() {
mockForConstraintsTests(Hardware)
def hardware = new Hardware()
assertFalse hardware.validate()
assertEquals 4, hardware.errors.getFieldErrorCount()
assertEquals "nullable", hardware.errors["name"]
assertEquals "nullable", hardware.errors["checkedDate"]
assertEquals "nullable", hardware.errors["purchaseDate"]
assertEquals "nullable", hardware.errors["make"]
}
Dieses sofort alle Fehler auf meine Zwänge fangen.
Ich nicht testen speichert, erstellt, aktualisiert, löscht in der Domäne; Wenn diese fehlschlagen, habe ich größere Probleme!
Würden Sie jemals Beziehungen 1-M usw. testen? –
Ich kann nicht sagen, dass ich sie direkt am Gerät getestet habe. Normalerweise hole ich sie auf der Integrationsebene ab. – zentuit