Babel.js 无法获取模拟元数据(巴别塔7升级)

2cmtqfgy  于 2023-02-01  发布在  Babel
关注(0)|答案(2)|浏览(227)

我正在模拟一个git子模块(它实际上只是我们工作中使用的一个javascript库),所有的模拟都开始返回:
Failed to get mock metadata
这是在我们把git子模块项目从6升级到babel 7之后发生的,如果我进入子模块并把修改恢复到babel 6,测试就会恢复为通过。
我模拟了这个模块,如下所示:

// path is an alias defined in webpack config
import { MyModule } from 'my-module';

jest.mock('my-module');

MyModule.someAttr.mockResolvedValue({data});

任何想法为什么升级到巴别塔7引入这些错误,一切(包括子模块)工作正常,只是我们的UI使用子模块的测试没有通过

laik7k3q

laik7k3q1#

该错误与Jest解析manual mocks的方式有关。可能是Webpack使用别名解析器解析了import语句,但jest.mock()函数没有考虑该别名解析器。手动模拟在相对于
因为你的mock模块是git子模块的一部分,你可以将子模块目录设置为项目根目录下的__mocks__/文件夹,或者将导出的子模块依赖项模块放置在__mocks__/文件夹中。

.
├── config
├── __mocks__
│   └── mock-module.js
├── submodule
│   ├── __mocks__
│   │   └── mock-submodule.js
│   └── index.js
├── node_modules
└── src
omhiaaxx

omhiaaxx2#

从我的代码中删除jest.mock('my-module');成功了。我在vue3-lottie包中遇到过这个错误。

相关问题