jest.mock-在React测试文件中找不到模块

时间:2019-08-05 18:10:34

标签: reactjs mocking jestjs

我想在测试用例中模拟广播频道,并遵循有关如何模拟模块的有趣文档。但是,当我运行测试时,出现错误“无法从'broadcast.test.js'找到模块'BroadcastChannel'

我尝试查看开玩笑和广播频道的github上是否存在类似问题,但没有任何反应。

broadcast.test.js内部

import BroadcastChannel from 'broadcast-channel';

jest.mock('BroadcastChannel');

它应该使用模拟广播频道运行测试用例。但是,我只会收到错误:

'Cannot find module 'BroadcastChannel' from 'broadcast.test.js''

1 个答案:

答案 0 :(得分:0)

您可以设置一个 setupTests 文件,您可以在其中为BroadcastChannel创建一个手动模拟并为窗口设置它。

if (!window.BroadcastChannel) window.BroadcastChannel = BroadcastChannelMock;

当您使用 react-scripts test 进行测试时,此方法适用。