如何在新的coreclr世界中模拟对象?

时间:2016-01-11 10:22:41

标签: c# mocking asp.net-core dnx coreclr

在单元测试时,我一直使用Moq来模拟外部依赖项。既然我正在尝试使我的代码完全跨平台,我想让我的单元测试也在linux上运行,所以我的目标是我的项目coreclr50。

问题是我似乎无法找到任何可以让我在coreclr上模拟的模拟库。 LightMock.vNext试图这样做,但它需要手动创建模拟类,这是不方便的。

我想知道人们如何对他们的MVC 6控制器进行单元测试!

2 个答案:

答案 0 :(得分:2)

ASP.NET团队似乎正在使用Moq https://github.com/aspnet/Mvc/blob/dev/test/Microsoft.AspNet.Mvc.Core.Test/project.json

 "dnxcore50": {
  "dependencies": {
    "moq.netcore": "4.4.0-beta8"
  }
}

答案 1 :(得分:1)

NSubstitute是一个很棒的模拟框架。据我所知他们还没有直接支持coreclr,但是他们在GitHub上有一个pull请求:

https://github.com/nsubstitute/NSubstitute/pull/197

所以你可以尝试自己做或稍等一下。 Moq是一个很好的框架,但据我记得它现在已经很久没有维护了。 NSubstitute也有更好的语法(至少恕我直言:)