最佳答案
我对 Jest 中如何对实现进行单元测试的嘲弄感到非常困惑。问题是我想嘲笑不同的预期行为。
有什么办法可以做到吗?因为导入只能位于文件的顶部,并且为了能够模仿某些内容,必须在导入之前声明它。我还尝试传递一个本地函数,这样我就可以覆盖该行为,但 jest 抱怨您不允许传递任何本地函数。
jest.mock('the-package-to-mock', () => ({
methodToMock: jest.fn(() => console.log('Hello'))
}));
import * as theThingToTest from '../../../app/actions/toTest'
import * as types from '../../../app/actions/types'
it('test1', () => {
expect(theThingToTest.someAction().type).toBe(types.SOME_TYPE)
})
it('test2', () => {
//the-package-to-mock.methodToMock should behave like something else
expect(theThingToTest.someAction().type).toBe(types.SOME_TYPE)
})
在内部,你可以想象 theThingToTest.someAction()
使用 the-package-to-mock.methodToMock