问题标签 [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.
reactjs - 使用 react-testing-library 模拟 axios 两次
我正在测试Checkout
其中有两个 axios.get
调用的组件useEffect
,如下所示:
第一个调用是使用axiosMock
from__mocks__/axios.js
方法模拟的:
axios.js
但是,我不知道如何模拟第二个呼叫,这也是一个
get
呼叫。
Checkout.test.js
如果您想深入了解Checkout.js组件:
无法看到更新的组件。
如果我screen.debug()
注意到cartTotal
在axios
模拟响应中设置的内容在发生时尚未设置render
,导致渲染Form
--组件的条件cartTotal > 1500
是false
.
再次感谢小伙伴们!
javascript - 在测试中从 axios mock 获取请求参数
我在我的反应应用程序中动态创建一个请求字符串,将它传递给 axios.get 以从 REST 接口请求一些数据。在我的反应测试中,我用
这给了我一个静态的结果——这很好。但是现在,我还想根据动态创建的搜索词进行测试,所以问题是:如何从我的模拟中的 axios.get 函数获取请求字符串/参数?
vue.js - 为什么 Axios 方法没有运行?
我有以下允许用户登录的 vue 应用程序。我正在运行一个应该登录的单元测试,但在触发提交方法时 axios 不会运行。
测试中按钮触发器调用的 Submit 方法:
考试:
那么为什么在提交方法中完全忽略了 axios 调用呢?这是显示的错误消息 mockRouter was never push 因为从未进行过 axios 调用
任何帮助将非常感激。
reactjs - 可以使用 Axios 模拟来自外部库的 API 调用吗?
我的应用程序使用的来自外部库的组件将从 URL(例如 https://external-library/getResource)获取对象并返回它。
在我对此组件的单元测试中,如何使用 Axios 模拟来自 https://external-library/getResource 的响应?我已经将我的 Axios 适配器配置为返回一些东西:
adapter.onGet(/\/external-library\/getResource/).reply(200, mockResponse)
但它实际上并没有发生 - 我能够看到对该资源的调用由于没有身份验证令牌而失败,并且监视adapter.onGet
了它从未调用过的揭示。
是否可以将 axios 配置为在系统级别监听呼出电话?
javascript - 在 React 中模拟 Axios 时出现 UnhandledPromiseRejection 错误
我有一个提交表单的基本组件。这是声明表单提交的部分:
处理数据的函数是:
在我的测试中,我声明了模拟,测试看起来像:
注意: field
并且form
只是帮我获取任何字段和表单的助手。它们工作正常,它们已用于其他测试。
运行测试后,我收到以下错误:
RUNS test/Register.test.js node:internal/process/promises:245 triggerUncaughtException(err, true /* fromPromise */); ^
[UnhandledPromiseRejection:此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。承诺被拒绝,原因是“TypeError: Cannot read property 'post' of undefined”。] {
code: 'ERR_UNHANDLED_REJECTION' }
这里发生了什么?我没有处理catch
声明中的拒绝吗?
axios - 如何使用 jest 和 mock-axios 测试 504
正如标题所暗示的,我不确定当 API 请求超时时如何处理 504 错误。
在我的路由器中,我正在发送一个获取请求,格式化输出,如果 api 请求超时,我将响应代码设置为 504
mockAxios.get.mockImplementation
即使Promise.reject
会测试408
超时,但这是不同的。我需要测试某些外部 API 是否超时,我需要这样做,以便测试脱机工作。
我写了这个:
但它并没有真正与上面的代码保持一致,因为响应状态在代码中的响应对象中,而这里的错误包含响应状态。
api - 使用 axios 测试 API - 获取 triggerUncaughtException(err, true /* fromPromise */);
它将创建一个新用户,但是当我检查状态代码 200 时,它会抛出此错误
错误信息
> node:internal/process/promises:245 triggerUncaughtException(err, true /* fromPromise */); 预计:200
收到:未定义”。] {代码:'ERR_UNHANDLED_REJECTION'}
javascript - Javascript Promise 解决困境
所以基本上,我是 Javascript 的新手,只是想知道为什么我不能
- 从数据库中获取一些信息
- 将该信息与一些本地信息相结合,以制作一个大型 JSON 集
- 调用时将其发送到另一个函数
当我运行它时,我不断收到一条错误消息
如果我从配置中删除异步和相关的等待,我会收到以下错误
当我在发送之前打印 json 文件时,它会完全按照我的需要记录它,但是在我发送它之后,只有数据库信息存在,没有本地修改。不过,在我发送它之前和之后的长度是相同的,这让我相信一旦它被另一个函数调用,对 json 的本地修改就会出现未定义。
我很确定这与我对承诺的不完全理解有关,所以如果有人可以帮助我解决这个问题,我将不胜感激。
javascript - 如何编写测试用例来覆盖`logger.error`并返回此javascript条件的语句?
如何为 logger.error 和 return 语句编写测试用例?