模拟具有依赖关系的对象的datacontext

时间:2010-06-03 16:26:53

标签: unit-testing asp.net-mvc-2 moq ninject ninject-2

我正在我的项目中编写一些单元测试,并且我在控制器上有一个datacontext依赖项,其中包含我想要测试的方法。

我正在使用Ninject注入依赖项和Moq来创建我的模拟datacontext。我的DI使用了一个接口IDataContext,我的dbml会在接口注入过程中使用它。

在我的单元测试中,我正在创建我的模拟datacontext,如下所示:

var mock = new Mock<IDataContext>();
var myController = new MyController(mock.Object);

这会在执行datacontexts构造函数时在第二行引发Object reference not set to an instance of an object.异常。

我很明显错过了设置它的基本部分,但是我见过的大部分Moq示例都涉及使用Setup()对模拟对象进行某种测试。

我是以正确的方式来做这件事的吗?我应该创建我的IDataContext界面或其他东西的模拟吗?

1 个答案:

答案 0 :(得分:2)

哈哈, 在我阅读emad's blog on unit testing in ASP.Net MVC.

时,答案来了

我猜你没有将连接字符串添加到测试项目的app.config中吗? :)

这就是数据库依赖方式,因为你还没有嘲笑数据库端。 因此,如果你想这样做,你需要谷歌搜索一些代码,有几种方法可以做到这一点。

我发现下面的这几个引用非常有用,但由于我真的不需要模拟数据库端,我现在只是使用我的测试数据库服务器。

link