Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 帮助为测试响应头(特别是缓存控制)创建单元测试,以确定是否禁用了缓存_Asp.net Mvc_Unit Testing_Model View Controller_Caching_Cache Control - Fatal编程技术网

Asp.net mvc 帮助为测试响应头(特别是缓存控制)创建单元测试,以确定是否禁用了缓存

Asp.net mvc 帮助为测试响应头(特别是缓存控制)创建单元测试,以确定是否禁用了缓存,asp.net-mvc,unit-testing,model-view-controller,caching,cache-control,Asp.net Mvc,Unit Testing,Model View Controller,Caching,Cache Control,情景: 我有一个基本控制器,它在OnActionExecuting覆盖中禁用缓存 protected override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); filterContext.HttpContext.Response.Ca

情景:

我有一个基本控制器,它在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);
    }
一定有更好的办法

更新: