2012-06-15 2 views
67

Я использую ApiController ASP.Net MVC 4 RC, и я пытаюсь выполнить модульный тест методом Get.Как издеваться над методом CreateResponse <T> на HttpRequestMessage

Этот метод использует метод 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:

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

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

+1

Похоже, что он обращается к той же проблеме: http://stackoverflow.com/questions/10868673/asp-net-webapi-unit-testing-with-request-createresponse –

ответ

0

WebAPI 1 с VB здесь!

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

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

Просто размещение в случае, если это помогает любому.

Смежные вопросы