我正在为模块编写单元测试。我真的需要帮助处理全球变量和功能。 我的问题如下: 假设我想测试名为'needTest.js'的模块。结构如下:
由于我只需要在needTest.js中测试main函数,在我的测试文件中,我首先import main from '../needTest.js'
。而我的问题是:函数main不仅需要三个输入p1,p2和p3,它还取决于一些全局变量或函数,如isA,isB,isC。如何在我的测试文件中模拟这些全局变量?我想简单地替换那些全局变量的返回值,让我的测试文件忽略它导入的内容,但只使用我嘲笑的内容。
答案 0 :(得分:0)
实现这一目标的一种方法是使用Jest' jest.mock
method。
jest.mock('module-isA-came-from');
jest.mock('module-isB-came-from');
jest.mock('module-isC-came-from');
然后您可以显式传递模块工厂:
jest.mock('module-isA-came-from', () => jest.fn(() => 42));
或者在automocked模块上设置期望值:
isA.mockReturnValue(42);