2017-08-12 58 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