我想測試一個「withCriteria」的封閉,我不知道如何去做。我看到了如何模擬withCriteria調用,但不測試閉包內的代碼。在運行執行「withCriteria」的測試時,即使代碼在正常執行流程下運行良好,我仍然會收到MissingMethodException。有任何想法嗎? 謝謝! SteveGrails with Criteria testing
7
A
回答
14
我不會去那條路線。相反,我會將查詢作爲靜態查找方法移動到域類中,並直接在具有真實數據的集成測試中進行測試。然後,當在控制器或服務測試中調用輔助方法時,您可以輕鬆地進行模擬。
class YourDomainClass {
...
static List<YourDomainClass> findFooBar() {
YourDomainClass.withCriteria {
...
}
}
}
然後在單元測試:
def results = [instance1, instance2, instance3]
YourDomainClass.metaClass.static.findFooBar = { -> results }
這樣你測試的查詢工作對在集成測試的內存數據庫,但它很容易嘲笑它的單元測試。
0
目前還沒有Hibernate標準的模擬實現。你需要使用集成測試。但是,Burt建議將這種靜態查找方法用於代碼組織。您還應該查看在http://www.grails.org/1.2+Release+Notes中描述的命名查詢,以獲得一個很好的語法。
1
繼伯特的答案,看看命名查詢,如下所述:
http://blog.springsource.com/2010/05/24/more-grails-1-3-features/
然後你可以嘲笑你的單元測試的屬性/方法訪問由伯特描述。
1
由於沒有人提到創建DSL來運行其他DSL的選項,因此這裏全面介紹了這種方法。我經常使用它,結果非常好。
相關問題
- 1. grails - testing刪除()
- 2. Temporary Doctrine2 fixtures for testing with phpunit
- 3. Grails formRemote with jQBootStrapValidator
- 4. SQL Insert into Select Statement with 2 Criteria
- 5. grails beforeInterceptor with 2 actions
- 6. grails stack with scala and scaml
- 7. grails war tomcat with external config file
- 8. grails findAll with conditions或executeQuery
- 9. assertArrayEquals testing
- 10. Selenium Testing
- 11. Swing Socket Testing
- 12. JUnit Testing - Intellij Idea
- 13. Spring Data JPA repository with specification,pagination and criteria fetch-join
- 14. Angular 2 testing - process.env
- 15. Laravel Envoyer - Testing
- 16. Mac App Testing
- 17. Maven Profile for testing
- 18. unit testing system.timers.timer
- 19. Missing Documentation:MVCContrib UI-Testing
- 20. React testing componentWillReceiveProps
- 21. testing and establish_connection
- 22. Symfony Testing - ClockMock/DateTime
- 23. Grails - Criteria查詢中的'in'節點 - groovy.lang.IntRange不能轉換爲java.lang.Integer
- 24. Grails Criteria不能在集成測試中工作
- 25. Acceptance Testing - Check Email Received
- 26. Favorite JavaScript Unit Testing Framework
- 27. Internet Explorer 7 - Javascript'undefined'not testing
- 28. Rails testing has_many association failure
- 29. Ember-Data Unit Testing Store
- 30. Dapper。 IoC,Testing和Agatha
命名查詢是偉大的,但我不能嘲笑他們的單元測試。你有沒有得到這個工作,或者你堅持進行集成測試? – j4y 2012-03-06 18:52:15