我当前正在尝试使用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)
}
但是,当我对电话号码字段的最大尺寸约束进行测试时,并将其传递给一个小于可用的最大尺寸的值,我希望该测试通过,但它会失败,实际上所有测试都失败了,我是不确定为什么我是新手使用此框架。我真的很感谢您的帮助。
预先感谢
我现在已经设法解决了此问题。
问题与嘲笑约束有关,我嘲笑了我想做的测试的错误约束。
感谢您的帮助