這是在3天的研究和編寫代碼之後。我有EF Code First(EF5)和一個建立在它之上的通用存儲庫模式。我們有ICustomerRepository<Customer> : IRepository and CustomerRepository : RepositoryBase<MyContext> , ICustomerRepository
。所以當我去測試這個時,我發現我必須寫一個FakeDbContext,一個假IDbSet,然後僞造這些數據,並且做更多的事情。所有這一切,當我知道我將使用我的內存數據測試Linq到Objects時,Linq to Entities將需要以集成測試的形式進行另一套測試。所以,無論是我的代碼結構是錯誤的,因此編寫單元測試非常困難,或者有更好的方法來編寫我不知道的測試,或者我應該只進行集成測試。我正在使用NUnit和MOQ。有沒有正確的方法來測試EF代碼優先庫模式?
編輯:我試圖測試什麼? 我想檢查GetCustomersByType,Add,GetOrderPlacedByCustomer等方法。試圖查看這些方法內部的邏輯是否正確。這是什麼單元測試的,我猜。
*你想要測試什麼?測試有什麼目的? –
然後,是的 - 對於那種單元測試,您需要創建假數據結構。你可以通過創建你自己的實現或者通過嘲笑來做到這一點。我建議在你正在測試的東西的最外邊界利用嘲弄。 –
如果我嘲笑我的背景他們我的單元測試將參考EF,這是一個好主意嗎?我不確定,只是試圖讓我的頭在這附近。 –