我正在尝试使用 .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 建议我添加一些引用,但这也不起作用。
但是点击它没有任何反应。我还尝试使用 csproj 文件,看看是否可以强制加载这些程序集,但仍然没有成功。
我已经使用 XUnit 模板以及自定义 NUnit 项目进行了测试,结果相同。
我的 API 和测试项目的 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/