0

验证grails域类与数据库同步的最佳方式是什么?这是遗留数据库,我不能从域类构建它。一个有趣的想法here这意味着获取每个域的一行。但是,它并不是一个完整的解决方案,主要是因为我验证的测试数据库可能不是如此丰富的数据以至于在所有表中都有数据。针对数据库验证grails域类

提前感谢您花时间阅读/回复。

回答

1

这是一个不错的方法,即使对于空表也是如此 - 如果一个表为空,那么就没有遗留数据来担心验证了,对吗?或者,如果您想测试Grails约束与数据库约束的兼容性,请创建该类的新实例并尝试在事务中使用save(),并始终将事务重新展开。

如果数据库是小,我甚至去从list()删除max:1 - 验证纪录,因为只有一些记录可能违反限制。我也想用assert it.validate()代替println "${it}"

最后一个优化,我会限制只测试那些我知道可以违反一些约束的类。这将节省很多这样的测试 - 并且测试将花费大量时间,您知道 - 用GORM开销读取所有数据库。

+0

保存n'回滚方法听起来不错,但它不是通用的,因为我必须编写代码来保存每个域及其关联。不是吗?这意味着每次模型更改/增长时都必须修改验证代码。 – sul 2011-06-13 22:47:26

+0

您可以为每个字段生成一些随机垃圾 - 您可以枚举类“属性”或“constrainedProperties”。 – 2011-06-14 09:12:43