gpt4 book ai didi

c# - 如何模拟 HttpRequestMessage 上的 CreateResponse 扩展方法

转载 作者:IT王子 更新时间:2023-10-29 03:42:22 25 4
gpt4 key购买 nike

我正在使用 ASP.Net MVC 4 RC 的 ApiController,我正在尝试对 GET 方法进行单元测试。

此方法使用 CreateResponse<T> 上的 HttpRequestMessage 方法,但我不知道如何模拟它或使其正常运行。

该方法的主体包含以下内容:

MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType);
var response = Request.CreateResponse<SmartBlock>(
HttpStatusCode.OK, versionedSmartBlock, header);

在我的单元测试中,我创建了一个空的 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 方法真正发挥作用有任何指示?

最佳答案

这是通过指定一个空配置解决的:

request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());

我从这里得到了答案

ASP.NET WebApi unit testing with Request.CreateResponse

关于c# - 如何模拟 HttpRequestMessage 上的 CreateResponse<T> 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com