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



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

我被困住了,有没有更好的方法可以做到这一点?

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

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

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

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

将以下依赖项添加到构建配置

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

添加使用测试混合

@Domain(Person)
@TestMixin(HibernateTestMixin)

来源:圣杯 2.5.1 参考文档

最新更新