среды: Grails 2.3.8Grails домена: разрешить нулевой, но не пустой для струнного
У меня есть требование, что пароль пользователя может NULL, но не может быть пустым. Поэтому я определить домен, как это:
class User{
...
String password
static constraints = {
...
password nullable:true, blank: false
}
}
Я написал юнит-тест для ограничения:
void "password can be null but blank"() {
when: "create a new user with password"
def user = new User(password: password)
then: "validate the user"
user.validate() == result
where:
password | result
"hello" | true
"" | false
null | true
}
«Здравствуй» и нулевые случаи хорошо, но пустая строка («») не: junit.framework.AssertionFailedError: Условие не выполнено:
user.validate() == result
| | | |
| true | false
| false
app.SecUser : (unsaved)
at app.UserSpec.password can be null but blank(UserSpec.groovy:24)
- ли обнуляемым OV ошибка пробела: false?
- Я знаю, что я могу использовать специальный валидатор для выполнения требования, мне любопытно, есть ли лучший способ?
- Я делаю что-то неправильно?
Какой версии Грааль? Бланк изменен на нуль путем привязки данных в некоторых версиях. –
Я использую Grails 2.3.8. Ответ @Jeff Scott Brown разрешает мою проблему. Я думаю, вы тоже в правильном направлении. Итак, вы имеете в виду в какой-то другой версии, мой вопрос не будет проблемой, не так ли? –
В старых версиях это было не так. Я не помню, как это начиналось когда. Но я сказал то же самое, что сказал Джефф. –