2017-08-12 56 views
2

我试图写一个通用的代码库的单元测试(使用Grails的2.5.1)没有单元测试让代码的每一部分进行测试。但是我在使用Spock测试标准查询时遇到了困难。只有eq可以进行测试 - 如果'in'sqlRestriction使用,因此它无法进行测试。可以在Hibernate Grails的条件查询进行单元测试?

我坚持,有没有更好的方式来做到这一点?

回答

2

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

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

    对于Hibernate GORM的所有功能可以在HibernateTestMixin单元测试包括内测试

背后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