Подтвердить что ты не робот

Как высмеять метод расширения 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:

У запроса нет связанного объекта конфигурации, или предоставленная конфигурация была нулевой.

Кто-нибудь получил какие-либо указатели о том, как я могу настроить HttpRequestMessage так, чтобы метод CreateResponse действительно CreateResponse свою работу?

4b9b3361

Ответ 2

WebAPI 1 с VB здесь!

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

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

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