如何 jest.mock 导入 ES6 模块?
How to jest.mock an ES6 module import?
我已经将大量辅助方法移动到 npm 发布的库中,但其中一些在单元测试中被模拟,我不知道如何模拟新的导入。
在我的代码中,我能够像这样成功重构 .tsx 文件:
发件人:
import { doSomething } from "../../utils/stringUtils";
收件人:
import { Utils } from "@mine/my-lovely-libary";
const { doSomething } = Utils;
但是在 spec.tsx 的单元测试中,我无法让模拟工作:
jest.mock("../../utils/stringUtils", () => ({
...jest.requireActual("../../utils/stringUtils"),
doSomething: (date: string) => date.toString(),
}));
我想做这样的事情:
import { Utils } from "@mine/my-lovely-libary";
const { doSomething } = Utils;
jest.mock(doSomething);
你试过这样模拟吗
jest.mock('@mine/my-lovely-libary', () => ({
doSomething: () => doSomethingMock,
}));
这里的 doSomething 是来自您的 npm 库的方法
doSomethingMock 可以是 jest.fn() 或类似这样的 const doSomethingMock = 'mockTestValue'
我已经将大量辅助方法移动到 npm 发布的库中,但其中一些在单元测试中被模拟,我不知道如何模拟新的导入。
在我的代码中,我能够像这样成功重构 .tsx 文件:
发件人:
import { doSomething } from "../../utils/stringUtils";
收件人:
import { Utils } from "@mine/my-lovely-libary";
const { doSomething } = Utils;
但是在 spec.tsx 的单元测试中,我无法让模拟工作:
jest.mock("../../utils/stringUtils", () => ({
...jest.requireActual("../../utils/stringUtils"),
doSomething: (date: string) => date.toString(),
}));
我想做这样的事情:
import { Utils } from "@mine/my-lovely-libary";
const { doSomething } = Utils;
jest.mock(doSomething);
你试过这样模拟吗
jest.mock('@mine/my-lovely-libary', () => ({
doSomething: () => doSomethingMock,
}));
这里的 doSomething 是来自您的 npm 库的方法
doSomethingMock 可以是 jest.fn() 或类似这样的 const doSomethingMock = 'mockTestValue'