我正在尝试为通用代码库(使用 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)
关于unit-testing - Grails 中的 Hibernate 标准查询可以进行单元测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647780/