首页 > 解决方案 > 如何在描述块中测试模块,然后在另一个中模拟它

问题描述

假设我们在一个文件module.js中有 2 个异步模块,我在module.test.js. 我已将它们导入为:

import { fn1, fn2 } from './module';

fn1并在专用块上进行了测试describe,那里没有问题。

f2内部使用f1。我想模拟f1测试f2它何时失败并成功。

不幸的是,如果我将其模拟为:

jest.mock('./module', () => ({
  f1: jest.fn(),
}));

然后其他测试失败:

TypeError: (0 , _module.fn1) 不是函数

Jest 文档中的所有示例都处理导入的单个函数,在我的例子中,有多个,并且像上面那样模拟文件会影响所有这些。

知道如何fn1仅模拟describe测试的块fn2吗?

标签: javascriptjestjsmocking

解决方案


推荐阅读