我们如何在MVC .net中测试Cookie?
时间:2020-03-05 18:55:05 来源:igfitidea点击:
http://stephenwalther.com/blog/archive/2008/07/01/asp-net-mvc-tip-12-faking-the-controller-context.aspx
这篇文章展示了如何测试设置cookie,然后在ViewData中看到它。我要做的是查看是否写入了正确的cookie(值和名称)。任何答复,博客文章或者文章将不胜感激。
解决方案
回答
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)); }
回答
我们是否在寻找类似的东西? (未经测试,只需在回复框中输入)
var cookies = new HttpCookieCollection(); controller.ControllerContext = new FakeControllerContext(controller, cookies); var result = controller.TestCookie() as ViewResult; Assert.AreEqual("somevaluethatshouldbethere", cookies["somecookieitem"].Value);
在这种情况下,我们是说要测试cookie的编写而不是读取cookie吗?
如果可能的话,请让要求更清楚:)
回答
也许我们需要传递一个写入了cookie的Fake Response对象,然后测试从Controller返回的结果。