0
我無法模擬簡單的依賴項生成器函數。jest mock依賴項生成器函數
//generatorFunction.js
export default()=>({execute: (arg1)=>Promise.resolve(arg1)})
//actualFunction.js
import generate from 'generatorFunction'
export default (arg1)=>generate(arg1)
//actualFunction.test.js
import actualFunction from './actualFunction'
import generatorFunction from './generatorFunction'
const resultingGeneratedFunction = generatorFunction();
jest.mock('generatorFunction',()=>jest.fn(()=>({execute:()=>Promise.resolve()})))
it('calls generateFunction', function(done){
actualFunction(1).then(()=>{
expect(resultingGeneratedFunction.execute).toHaveBeenCalledOnce()
done()
})
})
哪些錯誤作爲執行永遠不會被調用,儘管當我在控制檯的日誌裏面看到actualFunction被執行時被調用。
我沒有意識到你不得不退還承諾,但這仍然沒有意義。您提供的示例中哪裏會生成功能?我意識到我沒有提供這個問題的背景,並且現在添加了它 – l2silver
對不起,您還必須導入它們。導入的版本是模擬的,你可以測試它。更新了我的答案。 –
對不起,生成器函數的問題是它必須生成一個自己的實例,我認爲這是混淆的地方。如果你正在導入。如果仔細查看示例,導入的generatorFunction將創建generateFunction。我真的應該更清楚我的問題,現在我會改變它 – l2silver