我有这个域类Ward
。name
我想测试这个约束(medi_abs
包Ward
位于):
package medi_abs
class Ward {
String name
static constraints = {
name blank:false
}
}
目前,WardTests.groovy 如下所示:
package medi_abs
@TestFor(Ward)
@Mock(Ward)
class WardTests {
void testInstance() {
def wardx = new Ward(name: 'OP')
assertEquals 'OP', wardx.name
}
void testConstraints() {
mockForConstraintsTests(Ward)
def wardx = new Ward(name: 'OP')
assertTrue wardx.validate()
}
}
当我运行test-app Ward
命令时,testInstance 不会失败,但 testConstraints 会失败,然后是以下错误消息:
groovy.lang.MissingPropertyException: No such property: validate for class: medi_abs.WardTests at medi_abs.WardTests.testConstraints
[编辑:现在我得到的错误信息是这样的,不知道为什么会改变:]
java.lang.NullPointerException
at grails.test.MockUtils$_addValidateMethod_closure87.doCall(MockUtils.groovy:1022)
at grails.test.MockUtils$_addValidateMethod_closure88.doCall(MockUtils.groovy:1065)
at medi_abs.WardTests.testConstraints(WardTests.groovy:43)
似乎在第一种方法中,Ward
已正确实例化,但与 validate() 命令相关,wardx
为空。到目前为止我找不到任何好的例子,我使用 validate() 错误吗?还是有更好的方法来测试 Grails 中的约束?