Я новичок в 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);