Как издеваться над методом расширения CreateResponse на HttpRequestMessage
Я использую ASP.Net MVC 4 RC ApiController, и я пытаюсь провести модульный тест метода Get.
этот метод использует метод CreateResponse, который находится на 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 фактически выполнял свою работу?
2 ответов:
Это было решено путем указания пустой конфигурации:
request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());Я получил ответ от
ASP.NET модульное тестирование WebApi с запросом.CreateResponse
WebAPI 1 с VB здесь!
мне удалось гибридные ответы из вашей ссылки выше, чтобы заставить это работать так просто, как это:
Dim request As HttpRequestMessage = New HttpRequestMessage() Return request.CreateResponse(HttpStatusCode.BadRequest, myCustomClassObject, GlobalConfiguration.Configuration)просто размещение в случае, если это кому-то поможет.
Comments