【发布时间】:2020-04-07 07:42:30
【问题描述】:
正如我在上一个关于模拟的问题中提到的,我是 Jest 和测试的新手,我似乎得到了一些曲线球。
这一次我无法在我的 CLI 应用程序中模拟 shelljs。
Automocking jest.mock('shelljs'); 不起作用并报错为:[TypeError: shell.exec is not a function]
所以我继续尝试使用mockImplementation()
jest.mock('shelljs', () => {
return jest.fn().mockImplementation(() => {
return {
exec: () => {}
};
});
});
令我惊讶的是,我仍然收到相同的错误消息
任何指针都会非常感激。
2020 年 8 月 4 日更新:
根据以下 Teneff 的回复,模拟可以正常工作:
jest.mock('shelljs', () => {
return {
exec: jest.fn()
};
});
现在我遇到了超时,因为我对 shell.exec() 的调用是异步的,并且有一个回调来解决我的承诺。
我的目标是模拟 shell.exec() 来解决承诺,但它会等待并且 Jest 超时。
【问题讨论】:
标签: javascript node.js unit-testing testing jestjs