3

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

我正在使用 Ninject 注入依赖项和 Moq 来创建我的模拟数据上下文。我的 DI 使用IDataContext我的 dbml 隐含的接口,并在整个注入过程中使用。

在我的单元测试中,我正在创建我的模拟数据上下文,如下所示:

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界面的模拟还是其他东西?

4

1 回答 1

2

哈哈,当我阅读emad 的关于 ASP.Net MVC 中的单元测试的博客时,答案就来了。

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

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

我发现下面的这些参考资料非常有用,但由于我真的不需要模拟数据库端,所以我现在只使用我的测试数据库服务器。

关联

于 2010-06-04T03:41:59.990 回答