Как смоделировать метод расширения CreateResponse <T> в HttpRequestMessage

Я использую 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 метод на самом деле делает свою работу?

 Ian Gilroy15 июн. 2012 г., 18:29
Похоже, это решает ту же проблему:stackoverflow.com/questions/10868673/…

Ответы на вопрос(2)

WebAPI 1 с VB здесь!

Мне удалось объединить ответы по вашей ссылке выше, чтобы заставить это работать так просто:

Dim request As HttpRequestMessage = New HttpRequestMessage()
Return request.CreateResponse(HttpStatusCode.BadRequest, myCustomClassObject, GlobalConfiguration.Configuration)

Просто постить на случай, если это кому-нибудь поможет

Решение Вопроса

Это было решено путем указания пустой конфигурации:

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

Я получил ответ на этот вопрос отсюда

Модульное тестирование ASP.NET WebApi с Request.CreateResponse

Ваш ответ на вопрос