【问题标题】:validate grails domain classes against a database针对数据库验证 Grails 域类
【发布时间】:2011-06-13 21:39:28
【问题描述】:

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

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

【问题讨论】:

    标签: testing grails integration-testing grails-plugin grails-domain-class


    【解决方案1】:

    这是一个不错的方法,即使对于空表也必须有效 - 如果表是空的,您就无需担心验证遗留数据,对吧?或者,如果您想测试 Grails 约束与 DB 约束的兼容性,请创建该类的新实例并尝试在事务中 save() 它 - 并始终回滚事务。

    如果数据库很小,我什至会从list() 中删除max:1 - 以验证每条 记录,因为只有部分记录可能违反约束。

    我还将println "${it}" 替换为assert it.validate()。

    最后一个优化,我会将测试的类限制为我知道可能违反某些约束的类。这将节省此类测试的很大一部分 - 而且测试将花费大量时间,您知道 - 使用 GORM 开销读取所有数据库。

    【讨论】:

    • save n' rollback 方法起初听起来不错,但它并不通用,因为我必须编写代码来保存每个域及其关联。不是吗?这意味着每次模型更改/增长时我都必须修改验证代码。
    • 你可以为每个字段生成一些随机垃圾——你可以枚举类'properties或constrainedProperties。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多