提问人:Vight 提问时间:5/24/2021 更新时间:5/27/2021 访问量:296
如何模拟保存到 LocalStorage 的 redux 存储
How to mock redux store that is saved to LocalStorage
问:
我正在测试 redux 商店。如果存在保存到 localStorage 的存储,则应采用持久化的存储副本。
let preloadedState;
const persistedState = localStorage.getItem('movieDBState');
if (persistedState) {
preloadedState = JSON.parse(persistedState); // should code coverage this line.
}
我的 jesj 代码覆盖率报告说,如果没有采取条件。 我试图以这种方式模拟本地存储:
const localStorageMock = (function () {
let localStorage = {};
return {
getItem(key) {
return localStorage[key];
},
setItem(key, value) {
localStorage[key] = value.toString();
},
clear() {
localStorage = {};
},
removeItem(key) {
delete localStorage[key];
},
};
}());
Object.defineProperty(window, 'localStorage', { value: localStorageMock });
但它似乎对我不起作用。有没有办法在不使用任何模拟库的情况下测试本地存储。只有开玩笑。
答:
0赞
Vight
5/27/2021
#1
找到解决方法。相反,if 语句我只是把 const preloadedState = JSON.parse(persistedState) ||{};
因此,如果 localStorage 为空并且 test 具有 100% 的代码覆盖率,则 createStore 不会丢弃。
评论
window.localStorage = localStorageMock;