unit-testing - 为具有依赖性的对象模拟数据上下文

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

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

我正在使用 Ninject 注入(inject)依赖项并使用 Moq 来创建我的模拟数据上下文。我的 DI 使用一个接口(interface) IDataContext,我的 dbml impliments 并在整个注入(inject)过程中使用它。

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

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

这会在执行数据上下文构造函数时在第二行抛出 未设置对象实例的对象引用。 异常。

我显然缺少设置它的基本部分,但是我看到的大多数 Moq 示例都涉及使用 Setup() 对模拟对象进行某种测试。

我的做法是否正确?我应该创建一个模拟我的 IDataContext 接口(interface)还是其他东西?

最佳答案

哈哈, 答案是在我阅读 emad's blog on unit testing in ASP.Net MVC. 时出现的

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

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

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

link

关于unit-testing - 为具有依赖性的对象模拟数据上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967890/

相关文章:

c# - 使用 Moq 模拟扩展方法

python - 单元测试: wxpython's event method raises exception but assertRaises does not detect it

jQuery 通用代码

asp.net-mvc - MVC 2 模型验证期间 IDataErrorInfo 是否被忽略?

c# - 如何为依赖于其他服务或数据库的服务编写单元测试

c# - Moq:Mock SetUp 方法在测试期间仅返回 null

unit-testing - Jasmine 中没有解决的 Angular promise

javascript - 在AngularJS中使用 Protractor 单击单元测试中的超链接

swift - 使用或不使用主机应用程序对自定义 iOS 框架进行单元测试

asp.net-mvc - 强类型 View - 通过编辑/创建表单发布附加数据