代码之家  ›  专栏  ›  技术社区  ›  Jamie Dixon

模拟具有依赖项的对象的DataContext

  •  3
  • Jamie Dixon  · 技术社区  · 16 年前

    我在我的项目中编写了一些单元测试,并且我对包含我想要测试的方法的控制器有一个DataContext依赖性。

    我正在使用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() .

    我走这条路对吗?我应该模仿一下我的 IDATACONTRONT 接口或其他什么?

    1 回复  |  直到 9 年前
        1
  •  2
  •   ˈvɔlə    9 年前

    哈哈, 答案是在我看完的时候得到的。 emad's blog on unit testing in ASP.Net MVC.

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

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

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

    link