2009-02-23 63 views
6

我正在嘗試開始使用Moq,並且無法找到所需的任何優質資源。Moq嘲笑數據集

我有一個數據接口類,有一個Get方法,它通過存儲過程返回一個數據集。這是代碼編寫的方式,目前我無法改變它,所以必須這樣做。

我想通過模擬數據集和返回數據來測試這個類,所以我不必實際進行數據庫調用。

是否有人這樣做,如果是的話,哪裏是開始做這件事的好地方?

回答

7

您不需要數據庫連接來填充DataSet。你可以這樣嘲笑它:

IDataInterface di = new Mock<IDataInterface>(); 
DataSet mockDataSet = CreateMockDataSet(); 
di.Expect(x => x.Get()).Returns(mockDataSet); 
something.UseDataInterface(di.Object); 

雖然填充模擬數據集是相當痛苦的。如果我這樣做,我通常會在返回的DataSet之前放置一個Facade接口,這更容易模擬。或者我更改代碼以使用更易於填寫的數據表。

或者,也可以使用嵌入式數據庫(例如SQLite或SQL Server CE)進行單元測試。

+1

嗯......那麼CreateMockDataSet()是做什麼的?我認爲這是問題 – 2016-07-01 13:39:14