3

场景:帮助创建用于测试响应报头,特别是高速缓存控制单元测试,在确定是否高速缓冲已被禁用或不

我有一个基地控制器,其禁用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 
} 

如何创建一个单元测试来测试这种行为?

回答

0

试图做同样的事情。迄今为止我所得到的最好的是...

[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); 
    } 

必须有更好的方法!

更新:How can I test an event of a MVC controller