我想測試一個「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 GORM with Criteria別名
- 2. Grails Spring Security Testing
- 3. grails - testing刪除()
- 4. Temporary Doctrine2 fixtures for testing with phpunit
- 5. SQL MAX(column)with Additional Criteria
- 6. Grails formRemote with jQBootStrapValidator
- 7. Grails with Team City
- 8. SQL Insert into Select Statement with 2 Criteria
- 9. SQLAlchemy Query with Inner Join with Duplicate Column Values Criteria/Filter
- 10. grails beforeInterceptor with 2 actions
- 11. grails war tomcat with external config file
- 12. grails stack with scala and scaml
- 13. Grails Quartz Plugin error with jdbcStore
- 14. grails findAll with conditions或executeQuery
- 15. assertArrayEquals testing
- 16. Selenium Testing
- 17. Swing Socket Testing
- 18. JUnit Testing - Intellij Idea
- 19. Spring Data JPA repository with specification,pagination and criteria fetch-join
- 20. testing #define CONSTANT
- 21. ReactJS Selenium Testing
- 22. React testing componentWillReceiveProps
- 23. unit testing system.timers.timer
- 24. Post build unit testing
- 25. iphone release vs testing
- 26. testing and establish_connection
- 27. rails-controller-testing Gem
- 28. clojure.test /與clojure.test/testing
- 29. Robolectric&testing startActivityForResult
- 30. Symfony Testing - ClockMock/DateTime
命名查詢是偉大的,但我不能嘲笑他們的單元測試。你有沒有得到這個工作,或者你堅持進行集成測試? – j4y 2012-03-06 18:52:15