嗨,我是在Typescript环境中使用笑话的新笑话用户。
通过阅读jest guide,如果我想模拟节点模块,我需要在__mocks__
文件夹中创建一个模块名称为文件的文件,以便开玩笑地导入模拟的模块。例如,如果我想模拟 typesafe-actions 库,那么我将拥有:
src-> __mocks__
-> typesafe-actions.ts
// __mocks__/typesafe-actions.ts
'use strict';
const typesafe = jest.genMockFromModule('typesafe-actions');
(typesafe as any).createAsyncAction = jest.fn();
module.exports = typesafe;
这样做之后,我发现测试失败,需要导入实际的模块实现,但函数未定义错误。我通过在需要实际模块实现的测试文件的标题中发出jest.unmock('typesafe-actions')
语句来解决此问题。这是因为测试文件:
我这样做正确吗,还是有更好的方法?
在使用模拟的测试文件中,我收到一个错误,提示createAction
不是一个函数...我该如何正确地从库中模拟一个函数,而其余模块函数保持不变?>