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()'。也不需要「導入」模塊。 –