如何正确模拟匿名类型?

时间:2015-04-10 17:34:16

标签: c# unit-testing httpclient anonymous-types nsubstitute

我正在使用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的匹配。

0 个答案:

没有答案