【发布时间】:2018-08-01 21:12:33
【问题描述】:
我在同一个文件中有一个包含 3 个函数的文件 (file.js):
file.js:
const fn1 = (number) => {
return number + 1;
}
export const fn2 = (value) => {
return value;
}
export const fn3 = (number) => {
return fn1(number);
}
export const fn4 = (number) => {
return fn2(number);
}
是否可以使用 JEST 定期模拟这些函数?我希望实现的目标是:
file.test.js:
import { fn2, fn3, fn4 } from 'file.js';
describe('fn2', () => {
test('normal test.' => {
expect(fn2(1)).toBe(1);
})
});
describe('fn3', () => {
test('mock fn1 for this test.' => {
mock fn1 = () => { return 1 };
expect(fn3(2)).toBe(1);
})
});
describe('fn4', () => {
test('mock fn2 for this test.' => {
mock fn2 = () => { return 1 };
expect(fn4(2)).toBe(1);
})
});
【问题讨论】:
-
您只能模拟导出的函数(否则,就测试而言,它甚至可能不存在)。您可以将
fn1移动到单独的模块,然后对其进行模拟。