我有一个简单的“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()
or 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 https://jestjs.io/docs/mock-functions#mocking-partials
我在用着React(加拿大税务局)和打字稿
我知道模拟模块有不同的方法,但我很想了解我面临的问题。
知道我做错了什么吗? :)
谢谢 !