我正在使用HttpClient的包装器来模拟http响应。我遇到了那些发送匿名类型的人的问题。
这是我的HttpClient类包装器的设置响应:
var x = new {category = 1, products = "1"};
Func<HttpRequestMessage, HttpResponseMessage> functionResponse;
functionResponse = request =>
request.CreateResponse(code, responseValue, _httpConfig);
_client.PostAsJsonAsync(
Arg.Is<string>(x => x.Contains(URL)),
Arg.Is<T>(x => x.ToJsonStringSafe() == postValue.ToJsonStringSafe())
).Returns(
System.Threading.Tasks.Task.Factory.StartNew(() =>
functionResponse(_message)));
这是执行httpClient调用的目标方法中的一段代码:
var response =
await _httpClient.PostAsJsonAsync(
_serviceUrl + "/productbyid",
new {category = _category, products = _products});
此时,response
为空,但应该是设置为responseValue
的任务。
此配置适用于除匿名类型
之外的任何内容*我在调试时验证了URL,类别和_products的匹配。