1
我的應用程序中有一個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中設置上下文時出錯。 能不能請您幫我出
的OP是使用'HttpModule',而不是一個'Controller'。 – NightOwl888
@ NightOwl888你是對的。我會更新我的答案。 – Fran
非常感謝您的回覆。 有一個查詢..我需要附加其他事件(OnError,OnEndRequest)從OnBeginRequest以來,因爲我使用 OnBeginRequest僅在RemoveServerHeadersModule。 請讓我知道 – Das