【问题标题】:Grails - Domain objects not saving in integration testGrails - 域对象未保存在集成测试中
【发布时间】:2012-09-17 08:53:28
【问题描述】:

我正在关注 Grails In Action 书中的一个示例。我的集成测试失败,因为示例代码中的搜索返回空引用。我使用了对 findAll() 的调用,现在看来我的测试数据没有保存; all.size 归零。

void testBasicDynamicFinders() {

        new User(userId: 'glen', password: 'secret', profile: new Profile(email: 'glen@glensmith.com')).save()
        new User(userId: 'peter', password: 'sesame', profile: new Profile(homepage: 'http://www.peter.com/')).save()

        def all = User.findAll()
        assertEquals 2, all.size()
}

我尝试使用 save(flush: true) 无济于事。

我还在 try...catch 结构中包含了一个保存语句,但似乎没有引发异常。

Grails 真的让我大吃一惊。请帮帮我?

【问题讨论】:

  • 你试过save( failOnError:true )吗?
  • 啊哈!这样做表明我有验证错误。奇怪的是书中没有提到任何这些......请将您的帖子作为答案提交,以便我可以接受并给予您适当的认可。
  • 完成!谢谢 :-) 是的,当事情没有保存时​​,验证错误通常是罪魁祸首
  • 哦,在这本书的辩护中,我发现我遗漏了一行使其中一个字段可以为空的行,这就是导致验证失败的原因。所以我的错。

标签: grails integration-testing


【解决方案1】:

如果你使用

save( failOnError:true )

然后它应该向您显示阻止保存域对象的任何验证错误:-)

【讨论】:

  • 这应该是任何保存尝试的默认值!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多