【发布时间】:2021-11-18 15:35:28
【问题描述】:
我有一个简单的“util”模块,带有一个默认导出和 2 个命名导出。
const foo = () => 'foo'
export default foo
export const bar = () => 'bar'
export const baz = () => 'baz'
在我的测试中,我是这样嘲笑它的:
jest.mock('./util', () => ({
__esModule: true,
default: jest.fn(() => 'mocked foo'),
bar: jest.fn(() => 'mocked bar'),
baz: jest.fn(() => 'mocked baz'),
}))
describe('util', () => {
//...
})
在我的组件上,当我调用foo()、bar() 或baz() 时,我收到了undefined。
但如果我像这样删除jest.fn(),一切正常:
jest.mock('./util', () => ({
__esModule: true,
default: () => 'mocked foo',
bar: () => 'mocked bar',
baz: () => 'mocked baz',
}))
我的示例与 jest doc 中的示例非常接近: https://jestjs.io/docs/mock-functions#mocking-partials
我正在使用 React (CRA) 和 TypeScript
我知道模拟模块有不同的方法,但我很想了解我面临的问题。
知道我做错了什么吗? :) 谢谢!
【问题讨论】:
标签: reactjs typescript testing jestjs create-react-app