我在我的項目中編寫了一些單元測試,並且在包含我想測試的方法的控制器上有一個datacontext依賴項。嘲笑具有依賴性的對象的數據上下文
我正在使用Ninject注入依賴項和Moq來創建我的模擬datacontext。我的DI使用了一個接口IDataContext
,這是我的dbml使用並通過注入過程使用的接口。
在我的單元測試,我創造我的模擬的DataContext如下:
var mock = new Mock<IDataContext>();
var myController = new MyController(mock.Object);
這將引發第二線Object reference not set to an instance of an object.
例外,而執行datacontexts構造。
我明顯錯過了設置這個的一個基本部分,但大多數我見過的Moq例子涉及使用Setup()
對嘲笑對象進行某種測試。
我對此有何看法?我應該創建一個模擬我的IDataContext
界面或其他東西嗎?
您可以顯示異常的調用堆棧? – 2010-06-03 17:23:55
另外,MyController的構造函數中發生了什麼? 如果我不得不冒險猜測在這一點上,你錯過了模擬對象的設置,應該返回構造函數中使用的東西。 – cloggins 2010-06-03 19:12:59
感謝您的評論傢伙。我正準備在melaos發佈我正在尋找的答案之前回復。再次感謝您抽出時間發表評論。 – 2010-06-04 12:48:51