2
我很困惑在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
感谢很多答案,它就像一个魅力:) – Kanekotic
如果什么'methodToMock'是一个不变的性质呢? – alayor
为什么你需要嘲笑一个恒定的价值。无论如何,只要用值替换'jest.fn()'。也不需要“导入”模块。 –