当前正在尝试运行身份验证功能的单元测试。为了遵守 NDA,我编写了一个虚拟函数,它基本上执行身份验证函数的操作。
Authentication.js
export const myTestFunction = param => {
console.log(param);
localStorage.setItem("Test", param)
}
index.test.js
import {myTestFunction} from "../../redux/actions/ApiAuthAction";
const localStorageMock = {
getItem: jest.fn(),
setItem: jest.fn(),
clear: jest.fn()
};
global.localStorage = localStorageMock;
test("Test to see myTestFunction sets localStorage to the param value", () => {
let param = "Hello"
myTestFunction(param);
expect(localStorageMock.setItem).toBeCalledWith("Test");
});
当我运行测试时,它返回的是:
expect(jest.fn()).toBeCalledWith(expected)
Expected mock function to have been called with:
["Test"]
But it was not called.
73 | let param = "Hello"
74 | myTestFunction(param);
> 75 | expect(localStorageMock.setItem).toBeCalledWith("Test");
| ^
at Object.toBeCalledWith (src/__tests__/reducers/index.test.js:75:38)
我不确定我在这里做错了什么。我正在创建一个模拟本地存储。我将该函数放入测试中,但它仍然抛出未调用的失败测试。帮忙?
编辑:此测试的重点是查看 localStorage.setItem("Test, param);
是否被调用。
最佳答案
我最终使用的解决方案是:expect(localStorage.getItem("Test")).toBeDefined();
但我很高兴听到是否有人有更动态的解决方案。
关于javascript - 如何测试 localStorage 是否接收我在函数中设置的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60400371/