此刻正在兜圈子,希望有人能帮忙解决一下
我正在尝试着手进行单元测试
window.localStorage
相信我快到了,我只是在测试我的最终辅助方法时似乎无法访问实际的键/值对
我有以下方法
export function testSet() {
window.localStorage.setItem('testSet', '1234');
}
export function testDeletePrefix() {
let deleted = false;
Object.entries(window.localStorage).forEach(([key, value]) => {
if (key.startsWith("test") && key !== "test") {
window.localStorage.removeItem(key);
console.log(`Item with key '${key}' deleted from local storage.`);
deleted = true;
}
});
if (!deleted) {
console.log(`No key starting with 'test' found in local storage.`);
}
}
单元测试
setItemSpy = spyOn(window.localStorage, "setItem").and.callFake(
(key, value) => {
store[key] = value.toString();
}
);
testSet();
expect(setItemSpy).toHaveBeenCalledWith("testSet", "1234");
testDeletePrefix();
每当我运行这个测试时,我都会得到输出
No key starting with 'test' found in local storage.
所以
spyOn
已经确认键/值对已经设置,那么为什么我在循环 window.localStorage
时无法访问它们?真的很感激一些指示,所以我能理解这个