2013-04-10 82 views
0

如果這個問題已經被提出,我很抱歉。我對單元測試非常陌生,我想用犀牛來嘲笑。用犀牛模擬模擬數據庫對象

所以問題是......我有一個方法來測試,並且該方法假設根據輸入參數回收一些數據並返回爲datatable。

它也做了一些計算,找出哪些存儲過程應該被調用以及使用哪一組參數。

我的問題是,當我使用模擬對象調用方法....它會在數據庫檢索代碼行時拋出一個錯誤,因爲對象沒有設置爲instanse。這是預料之中的,因爲我們正在嘲笑它們,因爲它們沒有數據從數據庫中退縮。

那麼可以做那件事情。

回答

1

好像是介紹Repository Pattern的好時機。

如果您介紹的是,生成查詢到DB的邏輯和從DB讀取數據的邏輯將封裝在Repository中。

在這種情況下,您可以在測試中模擬/存儲存儲庫,並且可以單元測試所有使用存儲庫的類,而無需創建測試數據庫。

存儲庫模擬將驗證傳入參數是否正確。
而存儲庫存根將返回每個特定測試所需的任何特定於測試的數據。