我正在尝试在没有单元测试的情况下为通用代码库(使用 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 参考文档