如何对Asp.net核心WebAPI(net452)项目进行单元测试?

时间:2016-11-05 21:33:09

标签: unit-testing asp.net-core

我目前有一个Asp.net Core Web.Api项目。
它(仅)以net452 框架为目标。
问题是:如何对asp,net core WebAPI(net452)项目进行单元测试?

我已经尝试将经典的.net单元测试项目添加到我的解决方案中,并引用了我的web.api核心项目。 出于某种原因,我无法在webapi项目中声明(引用)任何类。 由此我得出结论,我不能使用经典的单元测试项目来测试我的Asp.net核心项目。

在我的project.json中:

 "frameworks": {
   "net452": {}
   }
}

这就是我的解决方案的样子:

solution

在我的测试类中:

[TestClass]
public class ActiveDirectoryClientProviderTests
{
    [TestMethod]
    public async Task Get_Should_Return_Client()
    {
        //var settings = new ActiveDirectorySettings();
        Ng2Aa_demo.Domain.Avatar.GetAvatarByUserHandler
    }
}

2 个答案:

答案 0 :(得分:3)

您可以使用xUnit或NUnit,两者都适用于.Net核心。

以下是有关如何创建单元测试项目的教程:https://docs.microsoft.com/en-us/dotnet/articles/core/testing/unit-testing-with-dotnet-test

您基本上创建.Net核心类库,导入xUnit或NUnit库并设置单元测试运行器。

使用xUnit的项目json示例:

{
  "version": "1.0.0-*",
  "testRunner": "xunit",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type":"platform",
      "version": "1.0.0"
    },
    "xunit":"2.1.0",
    "dotnet-test-xunit": "1.0.0-rc2-192208-24",
    "PrimeService": {
      "target": "project"
    }
  },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": [
        "dotnet5.4",
        "portable-net451+win8"
      ]
    }
  }
}

取自here

答案 1 :(得分:0)

  1. 首先,您需要添加另一个核心项目 enter image description here

  2. 在project.json中 添加2个依赖项&指定testRunner。 确保使用Xunit !!

  3. enter image description here

    "xunit": "2.2.0-beta2-build3300",
    "dotnet-test-xunit": "2.2.0-preview2-build1029"
    

    现在您可以使用xunit对您的web api核心项目进行单元测试!