【发布时间】:2020-03-19 11:18:07
【问题描述】:
我是 Angular 测试的新手,所以我测试了小事件和功能,但现在在测试时使用假的 localStorage,我在每个组件中都面临这个问题 localStorage.removeitem。我已经用谷歌搜索了这个问题,但无法获得最佳解决方案。任何人都可以帮助解决这个问题。
这就是我模拟本地存储进行测试的方式。
let store = {''}; // i have localData here
const mockLocalStorage = {
getItem: (key: string): string => {
return key in store ? store[key] : null;
},
setItem: (key: string, value: string) => {
store[key] = `${value}`;
},
removeItem: (key: string) => {
delete store[key];
},
clear: () => {
this.store = {};
}
};
spyOn(localStorage, 'getItem')
.and.callFake(mockLocalStorage.getItem);
spyOn(localStorage, 'setItem')
.and.callFake(mockLocalStorage.setItem);
// spyOn(localStorage, 'removeItem')
// .and.callFake(mockLocalStorage.removeItem);
spyOn(localStorage, 'clear')
.and.callFake(mockLocalStorage.clear);
【问题讨论】:
标签: javascript angular testing jasmine karma-runner