カスタムの単体テストをしようとしていますApiController
。私のカスタム コントローラーInitialize
では、認証ヘッダーを評価するメソッドをオーバーライドします。
だから私の問題は、利用可能なリクエストヘッダーが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
。助けてもらえますか?残念ながら、どのコンテキストがどの目的を満たしているのか正確にはわかりません。