document.cookie
就像一个字符串,但又不是字符串。引用 Mozilla 文档 中的示例:
document.cookie = "name=oeschger";
document.cookie = "favorite_food=tripe";
alert(document.cookie);
// displays: name=oeschger;favorite_food=tripe
如果您尝试仅使用字符串制作模拟 cookie,您将 不会 得到相同的结果:
var mockCookie = "";
mockCookie = "name=oeschger";
mockCookie = "favorite_food=tripe";
alert(mockCookie);
// displays: favorite_food=tripe
所以,如果你想对操作 cookie 的模块进行单元测试,并且如果你想对这些测试使用模拟 cookie,可以吗? 如何?
原文由 thisgeek 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
cookie
setter 和 getter 创建一个对象。这是一个非常简单的实现:虽然可能不适用于所有浏览器(尤其是 IE)。 更新: 它只适用于支持 ECMAScript 5 的浏览器!
更多关于 getter 和 setter 的信息。
演示