unit-testing - Grails 中的 Hibernate 标准查询可以进行单元测试吗?

标签 unit-testing grails spock hibernate-criteria

我正在尝试为通用代码库(使用 Grails 2.5.1)编写单元测试,而不进行单元测试,以便测试代码的每个部分。但在所有情况下,我在使用 Spock 测试标准查询时都遇到困难。只能测试 eq - 如果使用 'in'sqlRestriction,则无法测试。

我被困住了,有更好的方法吗?

最佳答案

HibernateTestMixin 使用 Hibernate 4 和 H2 内存数据库。这使得在 Grails 单元测试中也可以使用所有 GORM 功能。

GORM for Hibernate 的所有功能都可以在 HibernateTestMixin 单元测试中进行测试,包括:

  • 基于字符串的 HQL 查询
  • 复合标识符
  • 脏检查方法
  • 与 Hibernate 的任何直接交互

HibernateTestMixin 背后的实现负责使用内存中的 H2 数据库设置 Hibernate。它仅配置给定的域类以在单元测试中使用。 @Domain 注解用于告知应配置哪些域类。

将以下依赖项添加到 buildconfig

dependencies {
        test 'org.grails:grails-datastore-test-support:1.0-grails-2.4'
    }

添加使用测试混合

@Domain(Person)
@TestMixin(HibernateTestMixin)

来源:grails 2.5.1 reference documentation

关于unit-testing - Grails 中的 Hibernate 标准查询可以进行单元测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647780/

相关文章:

java - 现代 HTML/CSS/JS 布局以及 Java 后端

unit-testing - 如何编写一个Spock测试来测试被测类与外部实用程序类之间的交互?

gradle - 如何使用不同的参数多次运行 Spock 规范?

grails - 如何让 Spock 重试失败的 Geb 测试?

objective-c - Objective-C - 单元测试 dispatch_async block ?

javascript - 如何测试对具有不同参数的同一函数的多次调用?

grails - 将消息作为其他消息的参数

eclipse - 请帮助进行SpringSource更新

php - 有没有办法初始化 PHPUnit 测试类模板?

c++ - 如何在测试系统中自动注册测试用例?