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

4
我目前有一个Asp.net Core Web.Api项目。
它(仅)针对net452框架。
问题是:如何对Asp.net Core WebAPI(net452)项目进行单元测试?
我已经尝试向我的解决方案添加一个经典的.NET单元测试项目,并引用了我的Web.API Core项目。
由于某种原因,我无法声明(引用)WebAPI项目中的任何类。
基于此,我得出结论,我不能使用经典的单元测试项目来测试我的Asp.net Core项目。
在我的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个回答

3
您可以使用xUnit或者NUnit,它们都能够很好地与.Net Core配合使用。
以下是一个关于如何创建单元测试项目的教程:https://learn.microsoft.com/en-us/dotnet/articles/core/testing/unit-testing-with-dotnet-test 您只需要创建一个.Net Core类库,导入xUnit或者NUnit库,并设置单元测试运行器即可。
下面是一个使用xUnit的project.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"
      ]
    }
  }
}

这里获取


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

  2. 在您的project.json文件中添加2个依赖项并指定testRunner。请确保使用Xunit!!

enter image description here

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

现在你可以使用xunit对你的Web API核心项目进行单元测试了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接