c# - .net core 2.1 测试 API 控制器缺少 AspNetCore.Mvc 参考
问题描述
我正在尝试使用此 MS doc中的 .net core 2.1 测试 API 控制器。
我的代码看起来像
[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();
}
在执行等待控制器方法调用时,我遇到了“程序集未引用错误”
我可以添加
using Microsoft.AspNetCore.Mvc;
但是 VS 说 AspNetCore 不存在于 Microsoft 命名空间中。
Intellisense 建议我添加一些参考资料,但这也不起作用。
但是点击它什么也没做。我还尝试使用 csproj 文件来查看是否可以强制加载这些程序集,但仍然没有成功。
我已经使用 XUnit 模板以及具有相同结果的自定义 NUnit 项目进行了测试。
我来自 API 和测试项目的 csproj 是
我需要创建什么样的项目来测试 MS 文档中的控制器?
解决方案
我注意到您没有将包含控制器的项目绑定到版本,而是应该使用以下元素进行绑定。
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
你错过了版本!
细节决定成败。如果您在更新此元素后收到不同的编译错误,那么您已经解决了这个问题。
推荐阅读
- parsing - 重新排列标记是词法分析器的工作吗?
- java - 带有休眠应用程序的 Spring Boot 无法启动
- python - 如何按单个值重新排列一维 numpy 数组?
- php - 使用 React Native 和 Php 隐藏 json 数据
- list - 如何从 common lisp 的列表中删除子列表?
- r - 如何使用 ggplot 在 R 中调整绘图标签的位置?
- python - 为什么我的损失计算正确作为一个指标,而不是作为 TensorFlow 中的损失?
- r - 将包含的 {{}} 数据变量转换为字符
- c# - 从 cosmos 中获取给定类 Type 的对象(ISO:最佳实践)
- spring - Spring Data 处理速度极慢