【发布时间】:2016-06-30 15:20:21
【问题描述】:
当我尝试像下面这样开玩笑地模拟一个 react 组件的 localStorage 时,
spyOn(window.localStorage,'removeItem');
window.localStorage.removeItem("key1");
window.localStorage.removeItem("key2");
expect(window.localStorage.removeItem).toHaveBeenCalledWith("key1");
expect(window.localStorage.removeItem).toHaveBeenCalledWith("key2");
并使用以下代码进行 localStorage 模拟
let localStorageMock = (function() {
var storage = {};
return {
setItem: function(key, value) {
storage[key] = value || '';
},
getItem: function(key) {
return storage[key] || null;
},
removeItem: function(key) {
delete storage[key];
},
get length() {
return Object.keys(storage).length;
},
key: function(i) {
var keys = Object.keys(storage);
return keys[i] || null;
}
};
})();
Object.defineProperty(window, 'localStorage', { value: localStorageMock });
【问题讨论】:
-
您遇到了什么错误?
-
我没有收到任何错误信息,但是单元测试中没有涵盖这些行。
标签: javascript reactjs jestjs