我有一个域类,它属于另外两个带有多个验证的域类。
让我们说域类书属于作者。在测试Book域类时,我希望只需访问Author对象,而无需使用Author的所有复杂验证来创建它。这可能吗?
答案 0 :(得分:1)
在保存Author
的实例时,只需传递validate: false
。
Author authorInstance = new Author()
authorInstance.save(validate: false)
这将阻止在Grails级别进行验证,但不确定在写入数据库级别时这将如何表现。
答案 1 :(得分:0)
build-test-data plugin是解决此问题的绝佳解决方案,它允许您创建/保存域对象,仅为您关注的属性指定值。该插件将负责填写任何其他所需属性/对象的值。例如,如果一本书需要作者,标题和ISBN,但您的测试只关注书名,您可以简单地写一下
def book = Book.build(title: 'Great Expectations')
该插件将负责为ISBN和作者创建有效值,并将所有内容保存到数据库中。