将旧的单元测试从grails 2.5.4迁移到grails 3.3时遇到问题
我有很多使用共享首选项的命令。例如,UserController内部的UserCommand:
class UserCommand implements Validateable {
String firstName
static constraints = {
firstName shared: 'nonNullableString'
}
}
在application.groovy中,我以这种方式定义了约束:
grails.gorm.default.constraints = {
nonNullableString(blank: false, maxSize: 255)
}
我也将User
域定义为:
class User {
String firstName
static constraints = {
firstName shared: 'nonNullableString'
}
}
我写测验:
User user = new User()
user.validate()
它按预期工作。但是当我这样做时:
UserCommand command = new UserCommand()
command.validate()
它引发异常。
`grails.gorm.validation.exceptions.ValidationConfigurationException: Property [User.firstName] references shared constraint [nonNullableString:null], which doesn't exist!`
我以为我在application.groovy文件中犯了一个错误,但是共享约束适用于域。
这是一个有相同问题的示例项目:https://github.com/almejo/commandtest
有什么想法吗?