帮助创建用于测试响应报头,特别是高速缓存控制单元测试,在确定是否高速缓冲已被禁用或不
问题描述:
场景:帮助创建用于测试响应报头,特别是高速缓存控制单元测试,在确定是否高速缓冲已被禁用或不
我有一个基地控制器,其禁用OnActionExecuting覆盖内缓存。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); //IE
filterContext.HttpContext.Response.Cache.SetNoStore(); //FireFox
}
如何创建一个单元测试来测试这种行为?
答
试图做同样的事情。迄今为止我所得到的最好的是...
[TestCase]
public void ResponseNotFromCache()
{
System.Net.WebRequest rq = System.Net.WebRequest.Create("testmethod");
System.Net.HttpWebResponse rs = rq.GetResponse() as System.Net.HttpWebResponse;
Assert.IsFalse(rs.IsFromCache);
}
必须有更好的方法!