【问题标题】:Grails 4 Testing: Implementing ServiceUnitTest & DataTest on the same Spock SpecificationGrails 4 测试:在同一个 Spock 规范上实现 ServiceUnitTest 和 DataTest
【发布时间】:2021-07-12 16:17:47
【问题描述】:

我正在升级 Grails 2.4.4 应用程序,一些单元测试使用依赖于 {DomainObject}.save(validate: false) 的数据库交互(以避免创建所有域对象所需的关联)。在某些情况下,无法重写测试。

单独实现ServiceUnitTest 不允许我调用mockDomain,因为ServiceUnitTest 没有实现DataTest,所以我也实现了DataTest

我的问题是:

  1. 短期:在同一规范上实施ServiceUnitTestDataTest 是否有任何可预见的问题?
  2. 长期:将服务和控制器中的动态查找器和条件查询替换为调用 GORM 数据服务(看起来可以使用约定 Spock 模拟来模拟它们)的一般最佳做法是什么?

【问题讨论】:

    标签: grails grails-orm spock


    【解决方案1】:

    实施 ServiceUnitTest 是否有任何可预见的问题 和 DataTest 在同一个 Spec 上?

    没有。我们设计的特征就是这样协同工作的。

    是替换动态查找器和标准的一般最佳做法 调用 GORM 数据在服务和控制器中查询 服务,看起来可以使用约定 Spock 来模拟它们 嘲讽?

    是的。大多数动态查找器和条件查询更适合作为 GORM 数据服务实例来实现。

    【讨论】:

    • 仅供参考...testing.grails.org/latest/guide/index.html 是显示 DataTestControllerUnitTest 一起使用的示例。碰巧没有使用DataTestServiceUnitTest 的例子,但想法与ControllerUnitTest 相同,即这些是特征(与抽象类相反),因此它们可以组合,并且它们不会占用您唯一的继承槽。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2021-12-06
    相关资源
    最近更新 更多