요청에 사용자 지정 헤더 정보가 필요한 API 컨트롤러에 대한 통합 테스트를 만들고 있습니다.
제어 장치
public IActionResult Delete([FromQuery] string param1, [FromQuery] string param2)
{
…
var id = Request.Headers["X-Id1"].ToString();
var id2 = Request.Headers["X-Id2"].ToString();
…
}
통합 테스트에서이 요청 헤더를 어떻게 추가 할 수 있습니까? _controller.ControllerContext
유형 이기 때문에 아래 코드에서 멈춰서 개체를 ControllerContext
변환 할 수 없습니다 HttpControllerContext
. 오류 메시지는Cannot implicitly convert type 'System.Web.Http.Controllers.HttpControllerContext' to 'Microsoft.AspNetCore.Mvc.ControllerContext'
통합 테스트
[TestMethod]
public void Test()
{
var request = new HttpRequestMessage();
request.Headers.Add("X-Id1", "1");
request.Headers.Add("X-Id2", "2");
var controllerContext = new HttpControllerContext();
controllerContext.Request = request;
_controller.ControllerContext = controllerContext; // Error message shows here.
_controller.Delete("a", "b");
// Assertion here.
}
이를 수행하는 다른 방법이 있습니까?
이 코드 시도
_controller.ControllerContext.HttpContext = new DefaultHttpContext();
_controller.ControllerContext.HttpContext.Request.Headers["X-Id1"] = "1";
_controller.ControllerContext.HttpContext.Request.Headers["X-Id2"] = "2";
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다