无法从"date-fns"嘲笑今天开始



我正在尝试从 jsdate-fns模块模拟函数。

我的测试顶部:

import { startOfToday } from "date-fns"

在我的测试中,我试图模拟:

startOfToday = jest.fn(() => 'Tues Dec 28 2019 00:00:00 GMT+0000')

这在我运行测试时给了我错误:

"startOfToday" is read-only

您可以使用jest.mock(moduleName,factory,options(方法来模拟date-fns模块。

例如

index.js

import { startOfToday } from 'date-fns';
export default function main() {
return startOfToday();
}

index.spec.js

import main from './';
import { startOfToday } from 'date-fns';
jest.mock('date-fns', () => ({ startOfToday: jest.fn() }));
describe('59515767', () => {
afterEach(() => {
jest.resetAllMocks();
});
it('should pass', () => {
startOfToday.mockReturnValueOnce('Tues Dec 28 2019 00:00:00 GMT+0000');
const actual = main();
expect(actual).toBe('Tues Dec 28 2019 00:00:00 GMT+0000');
});
});

单元测试结果:

PASS  src/stackoverflow/59515767/index.spec.js (10.095s)
59515767
✓ should pass (5ms)
----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |      100 |      100 |      100 |      100 |                   |
index.js |      100 |      100 |      100 |      100 |                   |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        12.081s

源代码:https://github.com/mrdulin/jest-codelab/tree/master/src/stackoverflow/59515767

最新更新