我正在寫一個repository。通過DAO獲取對象。創建和更新對象是通過一個Request對象完成的,該對象被提供給RequestHandler對象(la Command pattern)。我沒有編寫DAO,Request或RequestHandler,所以我不能修改它們。我應該嘲笑哪個對象?
我正在嘗試編寫此存儲庫的測試。我嘲笑了DAO和RequestHandler。我的目標是讓模擬的RequestHandler簡單地將新的或更新的對象添加到模擬的DAO中。這會造成我與數據庫交談的錯覺。這樣,我不必爲所有調用此存儲庫的類嘲笑存儲庫。
問題是Request對象是這個字符串blob和各種字母數字代碼的混合物。我很確定XML也涉及到。這有點亂。另一位開發人員正在編寫代碼以基於存儲的對象創建Request對象。而且由於RequestHandler接受請求而不是我要存儲的對象,它不能更新模擬的DAO。
所以問題是:我是否也嘲笑了請求,還是應該等到另一個有點慢的人在我編寫測試之前完成他的代碼?或者在測試調用存儲庫的類時使用它並嘲笑整個存儲庫?
順便說一句,我說「模擬」不是NMock意義上的,而是像使用內存集合來僞造數據庫。