我正在尝试使用this MS doc的.net核心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控制器方法调用时,我遇到了"Assembly not referenced error“错误。
我可以添加
using Microsoft.AspNetCore.Mvc;
但是VS说AspNetCore在微软的命名空间中并不存在。
Intellisense建议我添加一些引用,但这也不起作用。
但是点击它什么也不做。我还尝试使用csproj文件,看看是否可以强制加载这些程序集,但仍然没有成功。
我已经使用XUnit模板和一个自定义的NUnit项目进行了测试,结果相同。
我的来自API和测试项目的csproj是
我需要创建什么样的项目来测试像MS文档中那样的控制器?
发布于 2018-07-30 07:07:26
我注意到您并没有将包含控制器的项目绑定到某个版本,而应该使用以下元素进行绑定。
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
你错过了版本!
细节是问题的关键。如果在更新此元素后出现不同的编译错误,则已解决此问题。
https://stackoverflow.com/questions/51584727
复制相似问题