我目前正在尝试使用Spock框架对Grails中的域模型约束进行单元测试,我遇到了一些问题。所以我有以下具有各种约束的域模型:
class profile {
String phoneNo
String userName
static belongsTo = [group:Group]
static constraints = {
phoneNo(blank:false, maxsize:14, matches:"44[0-9]{10}")
}
}
然后我有这个测试应该能够一次测试一个字段约束并返回预期的结果:
@Unroll("test profile all constraints #field is #error")
def "test profile all constraints"() {
when:
def newObj = new Profile("$field": val)
then:
validateConstraints(newObj, field, error)
where:
error | field | val
'blank' | 'phoneNo' | '447897654321'
'maxSize' | 'phoneNo' | '123456789012'
'matches' | 'phoneNo' | getPhoneNumber(true)
}
然而,当我运行测试说电话号码字段的最大大小约束并传递一个小于可用最大大小的值时,我希望这个测试通过但它失败了,实际上所有的测试都失败了,我是不确定为什么我是新手使用这个框架。我真的很感激你的帮助。
提前致谢
答案 0 :(得分:0)
我现在设法解决了这个问题。
这个问题与模拟约束有关,我正在嘲笑我想做的测试的错误约束。
感谢您的帮助