如何使用 TypeScript 和 Jest 模拟深度嵌套的函数

阿列克萨

我想测试我的模块并模拟 axios 外部依赖项。问题是我直接测试的方法没有(直接)导入 axios。它相当“隐藏”在中间调用后面。

像这样,A和B是我自定义的模块:A调用B,B使用axios所以,A不导入axios,只导入B。

由于B是围绕axios的一个很薄的层,我不想直接测试它。我宁愿只测试 A,然后模拟 axios。

这个怎么做?如果不是 axios,我有一个自定义模块 C,它有什么区别吗?

阿米克

是的,您可以模拟模块 - 请参阅https://jestjs.io/docs/en/manual-mocks要模拟 axios,只需使用jest.mock('axios'),然后从“axios”导入的任何内容都将是模拟(您可以通过标准 Jest 模拟 API 对其进行配置)。请注意,它会在整个测试用例中被模拟,因此例如,如果您测试一个模块,每个模块使用两个其他模块,每个模块都使用 axios,则不能只为其中一个模拟 axios。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Typescript和Jest:避免在模拟函数上键入错误

如何使用Jest在TypeScript中模拟导入的函数?

使用Mocks使用Jest和Typescript进行测试

使用Jest / Typescript测试fs库函数

在使用React Navigation和TypeScript时,如何使用Jest和Enzyme对静态navigationOptions进行单元测试?

如何在Jest中模拟嵌套函数?

模拟使用Typescript和Jest进行测试的类

如何使用Jest模拟直接导入的函数?

Typescript + Jest:如何部分模拟类实例

Jest和React Native:如何模拟AccessibilityInfo

如何用类型和基本的React函数组件的Jest和Typescript进行测试

使用正确的类型用Jest和Typescript模拟Express请求

如何使用Typescript在Jest中模拟命名的导出

使用SuperTest和Jest测试TypeScript Apollo服务器:'request.post'不是一个函数

Github CI与TypeScript和Jest

如何使用 jest 和 typscript 模拟模块变量

使用 jest 和 superagent 进行测试时如何模拟函数

如何使用 React 和 Jest 模拟 onPast 事件?

使用 React 和 Jest,如何模拟需要等待的 Promise?

React,Jest tdd 和 typescript

在 Jest 和 Typescript 中模拟 addEventHandler

使用 Typescript 和 Jest 的简单获取模拟

如何使用 jest 和 TypeScript 测试 express 中间件错误处理程序

如何使用 Jest 和 Typescript 测试“返回错误的函数”?

Angular - 如何使用 Jest 和 NgMocks 模拟包装器组件

如何使用 Jest 模拟链接的 MongoDB 函数

使用 nock 进行 Jest 和 HTTP 模拟

如何使用 Jest 和 Enzyme 测试 useEffect 中的函数?

如何在 Jest 和 Typescript 中使用 node-fetch?