【发布时间】:2019-11-27 04:56:39
【问题描述】:
我正在使用 xUnit 和 Moq 编写测试用例。
我正在尝试模拟 HttpClient 的 PostAsync(),但出现错误。
下面是用于模拟的代码:
public TestADLS_Operations()
{
var mockClient = new Mock<HttpClient>();
mockClient.Setup(repo => repo.PostAsync(It.IsAny<string>(), It.IsAny<HttpContent>())).Returns(() => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)));
this._iADLS_Operations = new ADLS_Operations(mockClient.Object);
}
错误:
不支持的表达式:repo => repo.PostAsync(It.IsAny(), It.IsAny()) 不可覆盖的成员(这里: HttpClient.PostAsync) 不能用于设置/验证 表达式。
截图:
【问题讨论】:
-
模拟 HttpClienthandler 或 HttpClientFactory,而不是 HttpClient 本身
标签: c# .net unit-testing moq xunit