Tas*_*waz 5 javascript local-storage fetch-mock
我在像这样的unitests中嘲笑localStorage
function storageMock() {
var storage = {};
....
}
Run Code Online (Sandbox Code Playgroud)
并设置 localStorage 像
window.localStorage = localStorageMock()
Run Code Online (Sandbox Code Playgroud)
它工作正常,直到我将 Node 更新为10.15.1.
这是抛出错误TypeError: Cannot set property localStorage of #<Window> which has only a getter。
知道如何模拟 localStorage 并将其设置为 window.localStorage 。
PS 我在 localStorage 上得到了类似的答案setItem,getItem有什么方法可以一次性设置整个 localStorage 吗?
小智 7
添加
Object.defineProperty(window, 'localStorage', {
value: storageMock
});
Run Code Online (Sandbox Code Playgroud)
完整示例:
const localStorageMock = (() => {
let store = {};
return {
getItem(key) {
return store[key] || null;
},
setItem(key, value) {
store[key] = value.toString();
},
removeItem(key) {
delete store[key];
},
clear() {
store = {};
}
};
})();
Object.defineProperty(window, 'localStorage', {
value: localStorageMock
});
window.localStorage.setItem("KEY", "INPUT")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10006 次 |
| 最近记录: |