【发布时间】:2014-04-30 15:45:24
【问题描述】:
在域类中重写属性的 setter 和 getter 是个好主意吗?假设我们有一个具有 name 属性和 capitalizedName 的域类,我们在其中存储清理名称:
class Person {
String name
String capitalizedName
String setName(String name){
this.name = name
this.searchName = name.replaceAll("[^A-Za-z0-9 ]", "").trim().toUpperCase()
}
}
如果我覆盖 setter 并在单元测试中尝试使用动态查找器:
Person.findByName('Whatever')
我明白了
java.lang.IllegalArgumentException: Property [name] is not a valid property of class [com.test.Person]
但在运行时它工作得很好。
我可以修改域类的 getter 和 setter 吗?实现上述行为的最佳方法是什么?
【问题讨论】:
标签: unit-testing grails grails-orm grails-domain-class