以下のように不要なレスポンスヘッダーを削除するために、アプリケーションにCustomHttpモジュールがあります。ユニットをHttpModuleでテストしています
public class RemoveServerHeadersModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += OnPreSendRequestHeaders;
}
public void Dispose() { }
public void OnPreSendRequestHeaders(object sender, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("X-Powered-By");
HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
HttpContext.Current.Response.Headers.Remove("Server");
}
}
私はこのためのユニットテストを書く必要があります。
以下のように試してみましたが、そのようにはできません。エラーが発生しました。
HttpRequest httpRequest = new HttpRequest("", "", "");
StringWriter stringWriter = new StringWriter();
HttpResponse httpResponse = new HttpResponse(stringWriter);
HttpContext httpContextMock = new HttpContext(httpRequest, httpResponse);
var application = new Mock<HttpApplication>();
application.Setup(ct => ct.Context).Returns(httpContextMock);
var module = new RemoveServerHeadersModule();
HttpApplication httpApplication = new HttpApplication();
module.Init(httpApplication);
module.OnPreSendRequestHeaders(httpApplication, EventArgs.Empty);
HttpApplicationでコンテキストを設定しようとするとエラーが発生します。 あなたがイベントOnPreSendRequestHeadersを使用すべきではない、マイクロソフトによってguidanceパー
のようなものです。 – NightOwl888
@ NightOwl888あなたは正しいです。私は私の答えを更新します。 – Fran
ありがとうございました。 1つのクエリがあります.を使用しているので、OnBeginRequest以外の他のイベント(OnError、OnEndRequest)を添付する必要があります.OnBeginRequestはRemoveServerHeadersModuleでのみ使用してください。 私に知らせてください – Das