c# - .net core 2.1 测试 API Controller 缺少 AspNetCore.Mvc 引用

标签 c# xunit asp.net-core-2.1

我正在尝试使用 .net core 2.1 测试 API Controller ,从 this MS doc 开始.

我的代码看起来像

    [Fact]
    public async Task ShouldReturnOkWithHealthBackend()
    {
        var apiConsumerService = new Mock<IApiConsumerService>();
        apiConsumerService.Setup(m => m.Consume()).Returns(Task.FromResult(true));

        var controller = new HealthController(apiConsumerService.Object);

        await controller.GetHealth();
    }

在执行等待 Controller 方法调用时,我遇到了“程序集未引用错误”

我可以添加

using Microsoft.AspNetCore.Mvc;

但是 VS 说 Microsoft 命名空间中不存在 AspNetCore。

Intellisense 建议我添加一些引用,但这也不起作用。

Intellisense suggestions to add AspNetMVC.Core

但是点击它没有任何反应。我还尝试使用 csproj 文件,看看是否可以强制加载这些程序集,但仍然没有成功。

我已经使用 XUnit 模板以及自定义 NUnit 项目进行了测试,结果相同。

我的 API 和测试项目的 csproj 是

diff csproj

我需要创建什么样的项目来测试 MS 文档中的 Controller ?

最佳答案

我注意到您没有将包含 Controller 的项目绑定(bind)到版本,您应该使用以下元素来执行此操作。

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />

您缺少版本!

问题在于细节。 如果更新此元素后出现不同的编译错误,则说明您已解决此问题。

关于c# - .net core 2.1 测试 API Controller 缺少 AspNetCore.Mvc 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51584727/

相关文章:

java - 解决 JUnit 中的重复测试习语

c# - VS 2017 RC 在尝试调试 xUnit 测试时生成 0x8000ffff 错误

javascript - 在可重用的 Razor 类库中包含静态文件

.net-core - 使用角色 ARN 从 EKS 连接到 SQS

c# - 将一长串参数包装为单个对象

c# - 如何在给定字符串名称的情况下实例化一个类?

unit-testing - 在 XUnit 测试中使用 AutoData 和 MemberData 属性

c# - 如何将登录页面设置为 ASP .NET Core 2.1 中的默认路由?

c# - LINQ 按嵌套在 3 个列表中的属性筛选

c# - petapoco 共享连接