【问题标题】:How do you test cookies in MVC .net?如何在 MVC .net 中测试 cookie?
【发布时间】:2010-09-09 07:27:47
【问题描述】:

http://stephenwalther.com/blog/archive/2008/07/01/asp-net-mvc-tip-12-faking-the-controller-context.aspx

这篇文章展示了如何测试设置 cookie,然后在 ViewData 中查看它。我要做的是查看是否写入了正确的 cookie(值和名称)。任何回复、博客文章或文章将不胜感激。

【问题讨论】:

    标签: asp.net-mvc unit-testing


    【解决方案1】:

    您是否正在寻找类似的东西? (未经测试,只是在回复框中输入)

    var cookies = new HttpCookieCollection();
    controller.ControllerContext = new FakeControllerContext(controller, cookies);
    var result = controller.TestCookie() as ViewResult;
    Assert.AreEqual("somevaluethatshouldbethere", cookies["somecookieitem"].Value);
    

    正如你的意思是你想测试一个cookie的写入而不是读取一个? 如果可能,请让您的要求更清楚:)

    【讨论】:

    • 那些cookies属于请求对象而不是响应对象。这个我已经试过了。
    【解决方案2】:

    也许您需要传入一个用于写入 cookie 的 Fake Response 对象,然后测试从控制器返回的内容。

    【讨论】:

      【解决方案3】:
      function ReadCookie(cookieName) {
       var theCookie=""+document.cookie;
       var ind=theCookie.indexOf(cookieName);
       if (ind==-1 || cookieName=="") return ""; 
       var ind1=theCookie.indexOf(';',ind);
       if (ind1==-1) ind1=theCookie.length; 
       return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-04
        • 1970-01-01
        • 1970-01-01
        • 2011-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多