【发布时间】:2026-01-15 14:20:13
【问题描述】:
我正在尝试使用来自 this 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();
}
在执行 await 控制器方法调用时,我遇到了“程序集未引用错误”
我可以添加
using Microsoft.AspNetCore.Mvc;
但是VS说微软命名空间中不存在AspNetCore。
Intellisense 建议我添加一些引用,但这也不起作用。
但是点击它什么也没做。我也尝试过使用 csproj 文件,看看是否可以强制加载这些程序集,但仍然没有成功。
我已经使用 XUnit 模板以及自定义 NUnit 项目进行了测试,结果相同。
我来自 API 和测试项目的 csproj 是
我需要创建什么样的项目来测试 MS 文档中的控制器?
【问题讨论】:
-
您应该将结果分配给一个变量,然后开始。然后断言
-
var 结果 = await controller.GetHealth();
-
我知道仍然缺少 Assert 部分,但这与此无关,因为我无法调用任何控制器方法。 @joey 您链接的文档与我在我的问题中引用的文档相同。我还没有看到对解决方案的任何特殊要求。
-
在测试项目和 api 项目中显示你的 csproj 文件的截图差异
标签: c# xunit asp.net-core-2.1