我在我的项目中编写了一些单元测试,并且在包含我想测试的方法的控制器上有一个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