0
我正在使用NHibernate 3的項目,但代碼非常混亂。我想這樣做的是:使用NHibernate和Repository模式 - 如何處理模擬上下文和篩選表達式
- 引入測試代碼到項目
- 介紹Repository模式 - 我做到了與實體框架的4個項目,我很喜歡它,尤其是機會測試查詢無論存儲的使用(我可以嘲笑內部存儲並注入內存中的對象列表)
- 由於目前的DAO代碼與CreateCriteria方法一起工作,並創建特定於NHibernate的查詢,所以不可能用另一個(或至少是I不知道如何在List實例上執行NHibernate.ICriteria,所以我需要一種方法來創建可以使用的查詢,而不管存儲實現通貨膨脹。
有什麼辦法可以實現它嗎?
它與單元測試有關。你寫的是嘲笑庫存調用的結果 - 例如FindByCity('Chicago')返回10個城市。然而,我想要實現的是測試複雜查詢是否被正確處理。例如FindBy(新的QueryByCity('Chicago'))返回10個城市 - 爲了檢查正確實現的查詢是否想要模擬內部上下文/內存中的存儲返回,例如20個城市,並且存儲庫將應用查詢並返回實際上與查詢匹配的城市。 – dragonfly
嗯,實際上,在您再次閱讀之後,您會回答,似乎我正在做的是數據庫集成測試。是對的嗎? – dragonfly
@dragonfly:是的,這將是一個數據庫集成測試。它需要整個事情:數據庫,NH,數據,但它也適用於任何類型的查詢,甚至(標準)SQL。 –