Как издеваться над методом расширения 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 фактически выполнял свою работу?

629   2  

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

    Ничего не найдено.