每當我嘗試實際進行單元測試演示和嘲笑的看法,我最終運行到太多數據庫相關MVP模式:將數據庫依賴項與演示者分開?
public EditAccount(IAccountEditPage _view, ISession _session, IResponse _response)
{
}
public void view_SaveUser()
{
//Class that takes the view's data and persists it to DB
}
很明顯,我不能寫單元測試這個演講,因爲我有使用的凝固我的模型類具有強大的數據庫依賴性。
我該如何刪除對數據庫的依賴關係,而無需構造函數注入觸發演示者中數據庫的每個類?我不想每次看到我都有這樣的想法。
我使用moq,如果有幫助。
編輯:另外我應該提到的是,「view_SaveUser」中的代碼非常精簡,並不是直接訪問數據庫或類似的東西。通常只有幾行。我沒有超越主持人AFAIK的範圍。
在你的數據提供者上有一個構造函數依賴關係很常見。我不熟悉MVP,但在MVC中,其標準實踐有一個IRepository構造函數參數。你也可以通過像DI這樣的DI容器來使用屬性注入。 – jrummell