IT TIP

CreateResponse를 모의하는 방법

itqueen 2020. 11. 3. 19:37
반응형

CreateResponse를 모의하는 방법 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.

요청에 연결된 구성 개체가 없거나 제공된 구성이 null입니다.

아무도 내가이 구성 할 수있는 방법에 대한 포인터를 가지고 HttpRequestMessage그렇게하는 것이 CreateResponse방법이 실제로 그 일을하세요?


이것은 빈 구성을 지정하여 해결되었습니다.

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

여기에서 답을 얻었습니다.

Request.CreateResponse를 사용한 ASP.NET WebApi 단위 테스트


여기 VB가있는 WebAPI 1!

위의 링크에서 하이브리드 응답을 관리하여 다음과 같이 간단하게 작동합니다.

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

누군가에게 도움이 될 경우를 대비하여 게시하십시오.

참고 URL : https://stackoverflow.com/questions/11053598/how-to-mock-the-createresponset-extension-method-on-httprequestmessage

반응형