你如何测试MVC .net中的cookie?

时间:2008-09-16 03:36:21

标签: asp.net-mvc unit-testing

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

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

3 个答案:

答案 0 :(得分:7)

你在寻找更像这样的东西吗? (未经测试,只需在回复框中输入)

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

同样,你的意思是你想要测试一个cookie的写作而不是读一个? 如果可能,请将您的请求更清楚:)

答案 1 :(得分:1)

也许您需要传入一个写入cookie的Fake Response对象,然后测试Controller中返回的内容。

答案 2 :(得分:-2)

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