为什么没有空格的值只有具有空白的字段:false约束失败验证

时间:2018-03-16 00:55:01

标签: unit-testing grails

我在域类中有一个字段,我将空白:false约束应用于,并且我编写了一个单元测试来验证该字段的仅空格字符串是否未通过验证,但测试失败:

void 'test name cannot be blank'() {

    when:
    domain.name = ' '

    then:
    !domain.validate(['name'])
    domain.errors['name'].code == 'blank'
}

我这行[{1}}上的ConditionNotSatisfiedError错误:ConditionNotSatisfiedError

这是我的域名对象:

!domain.validate(['name'])

1 个答案:

答案 0 :(得分:0)

您尚未指明您正在使用的Grails版本,这可能是相关的。 https://github.com/jeffbrown/selenablank项目展示了3.3.3中的工作原理。

https://github.com/jeffbrown/selenablank/blob/master/grails-app/domain/selenablank/Thing.groovy

package selenablank

class Thing {
    String name

    static constraints = {
        name nullable: false, blank: false, size: 1..20
    }
}

https://github.com/jeffbrown/selenablank/blob/master/src/test/groovy/selenablank/ThingSpec.groovy

package selenablank

import grails.testing.gorm.DomainUnitTest
import spock.lang.Specification

class ThingSpec extends Specification implements DomainUnitTest<Thing> {

    void 'test name cannot be blank'() {

        when:
        domain.name = ' '

        then:
        !domain.validate(['name'])
        domain.errors['name'].code == 'blank'
    }
}