这是 grails 应用程序中的一个简单域类:
class User {
String username
static constraints = {
username unique: true
}
}
我的问题是:我应该编写单元测试来检查用户名字段是否唯一吗?
@Test
void cannotCreateMoreThanOneUserWithTheSameUsername() {
new User(username: 'john').save()
def secondUser = new User(username: 'john')
assert !secondUser.validate()
}
我很怀疑,因为:
如果我按照 TDD 原则编写 User 类,那么我应该在实现约束关闭之前编写失败测试。
另一方面,在域中设置唯一约束与其说是真正的逻辑,不如说是一种数据模型配置。更重要的是,save 和 validate 方法是在框架中实现的。