【发布时间】:2020-11-03 19:12:14
【问题描述】:
目前我有这个:
jest.mock('my/hook', () => () => false)
我希望我的自定义 React 钩子模块在每个测试中默认返回 false,但在一些测试中我希望它返回 true。
钩子基本上是这样实现的:
function useMyHook(key) {
switch (key) {
case 'foo':
case 'bar':
return true
default:
return false
}
}
我在我的组件中多次使用钩子,一次用于foo 键,一次用于bar 键。我希望它默认为两个键都返回 false。
但是对于一些测试,我希望 foo 键返回 true,而对于其他测试,我希望 bar 键返回 true。
我在特定测试中尝试过这样做,但它没有做任何事情:
it('should do x', () => {
jest.doMock('my/hook', () => (key) => {
if (key == 'foo') {
return true
}
})
// ... rest of test
})
如何在 Jest 中基于每个测试自定义模块模拟?
【问题讨论】:
标签: javascript unit-testing jestjs mocking