问题标签 [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 投票
1 回答
2168 浏览

reactjs - 使用 react-testing-library 模拟 axios 两次

我正在测试Checkout其中有两个 axios.get调用的组件useEffect,如下所示:

第一个调用是使用axiosMockfrom__mocks__/axios.js方法模拟的:

axios.js

但是,我不知道如何模拟第二个呼叫,这也是一个get呼叫。

Checkout.test.js

如果您想深入了解Checkout.js组件:

无法看到更新的组件。

如果我screen.debug()注意到cartTotalaxios模拟响应中设置的内容在发生时尚未设置render,导致渲染Form--组件的条件cartTotal > 1500false.

再次感谢小伙伴们!

0 投票
0 回答
374 浏览

javascript - 在测试中从 axios mock 获取请求参数

我在我的反应应用程序中动态创建一个请求字符串,将它传递给 axios.get 以从 REST 接口请求一些数据。在我的反应测试中,我用

这给了我一个静态的结果——这很好。但是现在,我还想根据动态创建的搜索词进行测试,所以问题是:如何从我的模拟中的 axios.get 函数获取请求字符串/参数?

0 投票
1 回答
61 浏览

vue.js - 为什么 Axios 方法没有运行?

我有以下允许用户登录的 vue 应用程序。我正在运行一个应该登录的单元测试,但在触发提交方法时 axios 不会运行。

测试中按钮触发器调用的 Submit 方法:

考试:

那么为什么在提交方法中完全忽略了 axios 调用呢?这是显示的错误消息 mockRouter was never push 因为从未进行过 axios 调用

任何帮助将非常感激。

0 投票
0 回答
56 浏览

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 配置为在系统级别监听呼出电话?

0 投票
0 回答
188 浏览

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声明中的拒绝吗?

0 投票
0 回答
187 浏览

axios - 如何使用 jest 和 mock-axios 测试 504

正如标题所暗示的,我不确定当 API 请求超时时如何处理 504 错误。

在我的路由器中,我正在发送一个获取请求,格式化输出,如果 api 请求超时,我将响应代码设置为 504

mockAxios.get.mockImplementation即使Promise.reject会测试408超时,但这是不同的。我需要测试某些外部 API 是否超时,我需要这样做,以便测试脱机工作。

我写了这个:

但它并没有真正与上面的代码保持一致,因为响应状态在代码中的响应对象中,而这里的错误包含响应状态。

0 投票
0 回答
111 浏览

api - 使用 axios 测试 API - 获取 triggerUncaughtException(err, true /* fromPromise */);

它将创建一个新用户,但是当我检查状态代码 200 时,它会抛出此错误

错误信息

> node:internal/process/promises:245 triggerUncaughtException(err, true /* fromPromise */); 预计:200

收到:未定义”。] {代码:'ERR_UNHANDLED_REJECTION'}

0 投票
0 回答
20 浏览

javascript - Javascript Promise 解决困境

所以基本上,我是 Javascript 的新手,只是想知道为什么我不能

  1. 从数据库中获取一些信息
  2. 将该信息与一些本地信息相结合,以制作一个大型 JSON 集
  3. 调用时将其发送到另一个函数

当我运行它时,我不断收到一条错误消息

如果我从配置中删除异步和相关的等待,我会收到以下错误

当我在发送之前打印 json 文件时,它会完全按照我的需要记录它,但是在我发送它之后,只有数据库信息存在,没有本地修改。不过,在我发送它之前和之后的长度是相同的,这让我相信一旦它被另一个函数调用,对 json 的本地修改就会出现未定义。

我很确定这与我对承诺的不完全理解有关,所以如果有人可以帮助我解决这个问题,我将不胜感激。

0 投票
0 回答
20 浏览

javascript - 如何编写测试用例来覆盖`logger.error`并返回此javascript条件的语句?

如何为 logger.error 和 return 语句编写测试用例?