pho*_*bia 3 javascript jasmine sessionstorage
我正在尝试为我的所有JS编写测试,并且测试(我使用的是Jasmine)在浏览器中本地运行.由于安全限制(?)sessionStorage在Firefox中无法在本地工作(在浏览器中查看文件:/// ...).
快速举例:
window.sessionStorage.setItem('foo', 'bar');
Run Code Online (Sandbox Code Playgroud)
这给出了"错误:不支持操作".
我尝试使用自己的模拟方法覆盖window.sessionStorage,但没有运气.
我目前唯一的解决方案是将与sessionStorage相关的所有内容放在try/catch块中.
有关如何最好地处理此问题的任何建议?
Object.defineProperty似乎可以sessionStorage使用它,你可以模拟使用它:
var mockup = function() {
var table = {};
return {
getItem: function(key) {
return table[key];
},
setItem: function(key, value) {
table[key] = value.toString();
},
clear: function() {
table = {};
}
};
}();
Object.defineProperty(window, 'sessionStorage', { value: mockup });
// should output "Object { getItem=function(), setItem=function(), clear=function()}"
console.log(window.sessionStorage);
Run Code Online (Sandbox Code Playgroud)
但这个样机不与工作索引的sessionStorage(window.sessionStorage[key] = value)代理建mockup对象.
| 归档时间: |
|
| 查看次数: |
1989 次 |
| 最近记录: |