可以对 Grails 中的 Hibernate 条件查询进行单元测试吗?
Can Hibernate criteria query in Grails be unit tested?
我正在尝试为没有单元测试的通用代码库(使用 Grails 2.5.1)编写单元测试,以便测试代码的每一部分。但是我在所有情况下都难以使用 Spock 测试标准查询。只能测试 eq
- 如果使用 'in'
或 sqlRestriction
则无法测试。
我卡住了,有更好的方法吗?
HibernateTestMixin 使用 Hibernate 4 和 H2 内存数据库。这使得在 Grails 单元测试中也可以使用所有 GORM 功能。
适用于 Hibernate 的 GORM 的所有功能都可以在 HibernateTestMixin 单元测试中进行测试,包括:
- 基于字符串的 HQL 查询
- 复合标识符
- 脏检查方法
- 与 Hibernate 的任何直接交互
HibernateTestMixin 背后的实现负责使用内存中的 H2 数据库设置 Hibernate。它仅配置给定域 类 以用于单元测试。 @Domain 注释用于告诉应该配置哪个域类。
将以下依赖项添加到 buildconfig
dependencies {
test 'org.grails:grails-datastore-test-support:1.0-grails-2.4'
}
添加使用测试 mixins
@Domain(Person)
@TestMixin(HibernateTestMixin)
我正在尝试为没有单元测试的通用代码库(使用 Grails 2.5.1)编写单元测试,以便测试代码的每一部分。但是我在所有情况下都难以使用 Spock 测试标准查询。只能测试 eq
- 如果使用 'in'
或 sqlRestriction
则无法测试。
我卡住了,有更好的方法吗?
HibernateTestMixin 使用 Hibernate 4 和 H2 内存数据库。这使得在 Grails 单元测试中也可以使用所有 GORM 功能。
适用于 Hibernate 的 GORM 的所有功能都可以在 HibernateTestMixin 单元测试中进行测试,包括:
- 基于字符串的 HQL 查询
- 复合标识符
- 脏检查方法
- 与 Hibernate 的任何直接交互
HibernateTestMixin 背后的实现负责使用内存中的 H2 数据库设置 Hibernate。它仅配置给定域 类 以用于单元测试。 @Domain 注释用于告诉应该配置哪个域类。
将以下依赖项添加到 buildconfig
dependencies {
test 'org.grails:grails-datastore-test-support:1.0-grails-2.4'
}
添加使用测试 mixins
@Domain(Person)
@TestMixin(HibernateTestMixin)