问题标签 [jest-mock-axios]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
558 浏览

reactjs - 如何在 React with Jest 中测试链式 API 调用?

我的 react/redux 应用程序中有一个保存工作流程,需要两个 API 调用。第二次调用仅在第一次调用成功完成后发生。该应用程序运行良好,我现在正在添加一些自动化的端到端测试。

我能够触发该onSave函数并验证对 的调用saveRates,但我无法在我的测试中触发第二个 API 调用。这是代码

这是测试代码。我在应用程序中使用 Axios 进行 API 调用,并jest-mock-axios在我的测试中模拟 axios。

似乎第一次 API 调用的承诺saveRates尚未解决。该mockResponse调用解决了承诺,但是,使用开玩笑的调试器,我可以看到调用saveApplications永远不会发生。

https://www.npmjs.com/package/jest-mock-axios#axiosmockresponseresponse-requestinfo

如何告诉 jest 等到下一个 API 调用发生?我需要从onSave电话中返回承诺吗?

更新

这行得通......所以我怀疑它可以在await某个地方解决。

0 投票
1 回答
4391 浏览

javascript - JS Jest Mocking - 预期收到未定义的错误

我有axios用于获取一些数据的代码。

这应该使用 Jest 框架进行测试。

测试失败

真实数据是:

我在想这可能是命名/未命名 JSON 数组的问题。如何解决?

0 投票
1 回答
227 浏览

reactjs - 使用 Jest 模拟 Axios 和模拟 Windows.Location.Assignment

一些 ReactJs 组件正在使用 Axios NPM 库来触发 Http Posts。使用 Axios 的帖子示例,我们有:

发布后,触发“then”以移动到下一页。

我们正在使用 Jest 和 Enzyme 对 Axios 功能进行单元测试。此外,我们已经成功地单独模拟了: - 使用 jest-mock-axios 的 Axios 帖子 - 使用 jest 模拟的 window.location.assign 方法。

但是,当在 Axios 模拟中触发“then”时,模拟的 window.location.assign 方法每次都会失败。

是否可以同时模拟 Axios 调用和 window.location.assign ?

我可以传入一个包装 window.location.assign 方法的方法,但这是不正确的。

0 投票
1 回答
300 浏览

javascript - 如何在模拟的 Jest 函数中使用 var 作为返回值?

我目前有这个代码...

当我尝试跑步时,我得到...

babel-plugin-jest-hoist: 的模块工厂jest.mock()不允许引用任何超出范围的变量。

我希望能够轻松更改响应对象而无需重置和移除。有没有好的方法来做到这一点?

0 投票
1 回答
743 浏览

javascript - [单元测试]:如何在具有模拟 axios 调用的点击事件后获取更新的道具

代码

__mocks__/axios.js

问题

此代码似乎无法正常工作。AFAIK,这是因为当我触发 onClick 事件时,它会onClickEvent异步运行,这会newProps在它被记录到控制台后更新它的值。newProps需要重新渲染组件以进行进一步的断言测试。

客观的

  • 想模拟onclick函数
  • onclick函数应该进行模拟 axios调用
  • 调用应该返回一个axios承诺
  • 该承诺的解析值应该是传递给模拟 axios函数的数据
  • 组件应该使用新的道具重新渲染

任何帮助深表感谢。

0 投票
0 回答
269 浏览

node.js - Nodejs Jest 模拟在单个文件中的多个描述块中不起作用,它仅在第一个描述块中起作用

我在我的 node express 应用程序中使用 jest 进行单元测试,请原谅,因为我对这一切都不熟悉

在我的 abc.test.js

因此,当我在 test1 中运行此测试文件时,它返回测试已通过,但是在 test2 中,它返回预期的 >=1 返回 0。因为我在之前模拟它,所以我希望它应该为每个描述块返回 1

0 投票
1 回答
479 浏览

javascript - 如何检查函数是否在反应js中被调用?

我正在尝试test我的服务有一个功能saveWithoutSubmit

我想检查successerror方法是否被调用?或被updateTaskListAfterFilter称为与否?

我试过这样

https://codesandbox.io/s/ecstatic-currying-5q1b8

你能建议我如何测试async方法或发布请求(使用mook数据)吗?

这样我的测试用例就会通过。我想检查我是否从承诺中获得了成功,我的成功方法将被称为 else 错误

任何更新 ?..!!

更新

https://codesandbox.io/s/ecstatic-currying-5q1b8

0 投票
0 回答
8941 浏览

javascript - UnhandledPromiseRejectionWarning:TypeError:测试环境被拆除后捕获错误

在运行测试时出错的发布请求图像中测试失败案例时获取错误

使用 Reactjs 框架版本 16

用于 api 请求的 axios-hooks

用于测试的反应测试库

UnhandledPromiseRejectionWarning:TypeError:测试环境被拆除后捕获错误

无法读取 null 的属性“nodeType”(节点:171) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝编号:4)

测试代码

(代码经过测试)使用 axios 钩子发出请求然后发送错误到表单

0 投票
1 回答
88 浏览

unit-testing - 我对 axios 方法的测试用例说返回类型是匿名函数

要测试的方法是

测试文件是:

src/模拟/axios.js

收到的值:

预期:{“cardExpiryDate”:“2019-05-31T00:00:00.000Z”,“cardImage”:“ https://images.gyfthd.png ”,“cardIssueDate”:“2019 年 5 月 19 日星期日 15:43:25 GMT+0530(印度标准时间)”、“cardName”:“食品卡”、“cardPoints”:“321”、“cardShortDesc”:“30% OFF”、“id”:44、“isRedeemed”:false、“ receiverEmail": "abc@gmail.com", "senderEmail": "abc@gmail.com"}

收到:[功能匿名]

0 投票
2 回答
802 浏览

vue.js - 在 Jest 中测试 Global Vue.prototype.$http 方法,它在 Vue 中使用 axios

我在 main.js 的 Vue 项目中定义了一个全局原型,如下所示

各种 vue 组件直接调用this.$http.getthis.$http.post执行请求。我如何在 Jest 中测试这些组件,显然使用模拟我可以模拟我可以做

但是我的项目很大,将每个实例更改this.$http为 axios 是不可行的。

如何使用jest.mock

另外如何测试单个组件是否在不同的端点上进行多个 API 调用?