给开发者们,我想要模拟 HttpMessageHandler 来测试一个 HttpClient,我的问题是如何基于 URL 和 Http 方法进行模拟?因此响应将是方法和 URL 的函数:
Get + "http://testdoc.com/run?test=true&t2=10 => return X
Get + "http://testdoc.com/walk?test=true&t2=10 => return Y
Post + "http://testdoc.com/walk => return Z
这3个调用将返回不同的结果。
我的当前单元测试可以捕获所有情况:
var mockMessageHandler = new Mock<HttpMessageHandler>();
mockMessageHandler.Protected()
.Setup<Task<HttpResponseMessage>>("SendAsync", ItExpr.IsAny<HttpRequestMessage>(), ItExpr.IsAny<CancellationToken>())
.ReturnsAsync(new HttpResponseMessage
{ ... });
谢谢。