Я просто пытаюсь выполнить Unit-Test мой пользовательский ApiController
. В моем настраиваемом контроллере я переопределяю метод Initialize
для оценки заголовка авторизации.Разница между HttpControllerContext.Request и HttpContext.Current.Request
Так что моя проблема в том, что у меня есть 2 доступных заголовка запроса.
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
// Headers 1
var headersOne = controllerContext.Request.Headers;
// Headers 2
var headersTwo = HttpContext.Current.Request.Headers;
}
Но это не проблема сама. Проблема в том, что заголовки не совпадают. Итак, для продуктивной работы: где мне нужно искать заголовок авторизации. И где я должен применить свой заголовок авторизации для своего тестового сценария.
На данный момент я применить разрешительного заголовок к controllerContext
:
var fakeControllerContext = new HttpControllerContext
{
Request = new HttpRequestMessage
{
RequestUri = new Uri("http://localhost/api/test"),
Headers =
{
{ "Authorization", "Fake Authorization-Header"}
}
}
};
Но, как я уже сказал. Заголовок позже недоступен в HttpContext.Current.Request.Headers
. Не могли бы вы помочь мне? К сожалению, я точно не понимаю, какой контекст выполняет какую-то цель.
Может быть, здесь есть Anwer: http://stackoverflow.com/questions/31189028/testing-a-web-api-method -Вот потребляющих-HttpContext-ток-Request-файлы – Daniel