【发布时间】:2011-03-31 16:58:25
【问题描述】:
我有以下命令对象:
class CategoryCommand {
String name
String seoName
static constraints = {
name(blank: false)
seoName(blank: false)
}
}
我正在尝试使用此测试用例测试约束验证:
class ValidationTests extends ControllerUnitTestCase {
protected void setUp() {
super.setUp()
mockCommandObject(CategoryCommand)
}
void testValidation() {
def command = new CategoryCommand()
assertFalse command.validate()
}
}
但是断言失败,因为命令对象通过了验证,即使违反了约束。
我的猜测是这也不起作用,因为mockCommandObject 添加了一个validate() 方法,但是该方法的实现总是返回true
是否有另一种方法可以测试命令类的验证。我需要 validate() 和 errors 属性像运行应用程序时那样工作,以便正确测试它。我已经尝试将它作为集成测试和单元测试运行,但结果是一样的。
谢谢!
【问题讨论】:
-
我编辑了我的答案,因为我忘记了我正在将 hasErrors 添加到我的命令对象的 metaClass 以便能够在单元测试中使用它。
标签: unit-testing validation grails groovy