在学习 Grails 的过程中,我有几个领域类。“用户”和“发布”。以下是每个的重要片段:
//Post
static belongsTo = [user : User]
//User
static hasMany = [ posts : Post ]
有了这些条款,当用户被删除时,帖子也应该被删除。
在我的集成测试中,我似乎错误地访问了这些帖子,我不知道为什么。这是代码:
//From my integration tests...Not mocked.
def user = new User(userId: 'HenryTheThird', password:'thepassword').save()
...
def foundUser = User.get(user.id)
def postNames = user.posts.collect{ it.content }
assertEquals 2, postNames.size()
foundUser.delete()
assertFalse User.exists(foundUser.id)
assertNull (foundUser.posts.collect{ it.content})
最后一行给了我一个断言错误。我猜这是因为当我声明 foundUser 时,它会带入所有帖子。我似乎已经用我写的另一个测试验证了这一点。我的问题是,我如何断言数据库中的实际 foundUser 列表真的没有任何帖子了?换句话说,我如何验证与该用户关联的帖子是否真的被删除了?