2009-11-04 80 views
1

我正在尋找使用NHibernate Criteria API構建複雜查詢。我想驗證該標準是否按我的預期構建,而不必實際運行查詢。驗證NHibernate標準的內容

這可能嗎?是否有任何提示或技巧來優雅地做?

回答

2

一位同事最近做了這個

封裝在它自己的類(規範)每個條件查詢。 構建了一個表達式構建器,它將查詢輸出到字符串中。 測試了生成的表達式字符串與預期的表達式字符串匹配。

表達式構建器以遞歸方式遍歷規範中的標準樹以生成表達式字符串。

這是一般的想法,現在沒有與我的代碼:)抱歉。

但是,我發現編寫db集成測試來測試Nh條件要容易得多。 標準真的會返回我期望的數據嗎?

+0

聽起來和我要做的相似。 這是使用訪客模式嗎?一種是建立規格名稱的字符串,另一種是使用規格建立一個標準?你測試前者,但使用後者? – 2009-11-04 12:38:33

+0

是的,就是這樣。還沒有找到任何其他方法。 – Hibri 2009-11-04 12:43:49