How to mock the CreateResponselt;Tgt; extension method on HttpRequestMessage(如何模拟 CreateResponselt;Tgt;HttpRequestMessage 上的扩展方法)
问题描述
我正在使用 ASP.Net MVC 4 RC 的 ApiController,我正在尝试对 GET 方法进行单元测试.
I'm using ASP.Net MVC 4 RC's ApiController and I'm trying to unit test a GET method.
此方法使用 HttpRequestMessage
上的 CreateResponse<T>
方法,但我不知道如何模拟它或使其正常运行.
This method uses the CreateResponse<T>
method that's on the HttpRequestMessage
, but I've no idea how to mock this or to make it function correctly.
方法的主体包含以下内容:
The method's body contains this:
MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType);
var response = Request.CreateResponse<SmartBlock>(
HttpStatusCode.OK, versionedSmartBlock, header);
在我的单元测试中,我创建了一个空的 HttpRequestMessage
:
Within my unit test, I create an empty HttpRequestMessage
:
CallsController api = new CallsController(
managerMock.Object, config, adapterFactoryMock.Object);
api.Request = new HttpRequestMessage(
HttpMethod.Get, "http://localhost/Initiate?ern=%2B44123456789");
var response = api.Get("+44123456789", null);
但它只是生成一个InvalidOperationException
:
请求没有关联的配置对象或提供的配置为空.
The request does not have an associated configuration object or the provided configuration was null.
有没有人知道如何配置 HttpRequestMessage
以使 CreateResponse
方法真正发挥作用?
Has anyone got any pointers on how I can configure the HttpRequestMessage
so that the CreateResponse
method actually does its job?
推荐答案
通过指定一个空配置解决了这个问题:
This was solved by specifying an empty configuration:
request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
我从这里得到了答案
使用 Request.CreateResponse 进行 ASP.NET WebApi 单元测试
这篇关于如何模拟 CreateResponse<T>HttpRequestMessage 上的扩展方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何模拟 CreateResponse<T>HttpRequestMessag


- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 输入按键事件处理程序 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- C# 中多线程网络服务器的模式 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01