单元测试

时间:2016-10-04 06:33:11

标签: asp.net unit-testing moq asp.net-core-mvc project.json

我正在尝试使用moq和xunit在asp.net核心编写一个非常简单的单元测试。 但是当我运行单元测试时,我收到了一个错误。

堆栈跟踪: 在Moq.Mock 1..ctor(MockBehavior behavior, Object[] args) at Moq.Mock 1..ctor(MockBehavior行为)    在Moq.Mock`1..ctor()

无法加载文件或程序集' System.Core,version = 4.0.0'。

下面是我的代码和project.json文件。

{
  "version": "0.1.0-*",
  "testRunner": "xunit",
  "dependencies": {
    "Moq": "4.5.22",
    "xunit": "2.2.0-beta2-build3300",
    "dotnet-test-xunit": "2.2.0-preview2-build1029",
    "IntegraPay.Domain": {
      "version": "1.0.0-*",
      "target": "project"
    },
    "Integrapay.RegistrationApplication": {
      "version": "",
      "target": "project"
    },
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "netcoreapp1.0",
        "net45",
        "net451"
      ],
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      }
    }
  }
}


 [Fact]
        public async void GetAttributes()
        {
            Mock<IRegistrationRepository> repo = new Mock<IRegistrationRepository>();
            RegistrationManager manager = new RegistrationManager(repo.Object);
            var item = await manager.CreateModel("1234");
        }

1 个答案:

答案 0 :(得分:2)

使用Moq的预览版本。 https://blogs.msdn.microsoft.com/dotnet/2016/09/27/the-week-in-net-on-net-on-orchard-2-mocking-on-core-storyteller-armello/列出了与netstandard兼容的其他软件包。

您永远不想在net45x定位应用的imports节点中添加netcoreapp1.0。应用程序很可能无法加载程序集(如您的情况)或将在运行时运行缺少的API。