问题标签 [jest-fetch-mock]
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.
typescript - 无法模拟 API 请求
在我的 TypeScript 项目中设置jest-test-mock非常困难。我想知道是否有人可以指出我正确的方向?
我有一个看起来像这样的函数:
检索数据.ts
我在fetch.test.ts中像这样测试它
我遇到的问题是这个库似乎没有接管对fetch
. 将完全限定的 URL 放入我的函数将导致返回实际数据。我希望它检索data: '12345'
对象。我在哪里错了?
更新:
以下模式在导入时有效,import 'cross-fetch/polyfill';
但如果我使用import fetch from 'cross-fetch';
它则无效。使用第一个 import 语句的问题是它错误我的 linter 说fetch
没有定义。如果我在 fetch 导入之前控制台日志,它会显示正确的模拟构造函数。我尝试过使用模拟的导入顺序,但仍然存在同样的问题:
这显然是某种进口订单问题,但我不确定用 Jest 解决这个问题的正确方法。将 a 添加fetch
到 eslint 中的全局对象是否是一个合适的解决方案?
javascript - 在自定义钩子中测试 fetch.catch
我有这个自定义钩子:
如果会有无效响应,我想测试捕获错误。这样,应该会出现错误消息,这要归功于showErrorMessage()
. 我有这个测试:
但是,我收到了一个错误:
超时 - 在 jest.setTimeout.Timeout 指定的 5000 毫秒超时内未调用异步回调 - 在 jest.setTimeout.Error 指定的 5000 毫秒超时内未调用异步回调
我在这里做错了什么?我认为它与 有某种关系await waitForNextUpdate();
,但我真的不确定以及如何管理它。
jestjs - jest.mock(..) 在“describe”中不起作用(TypeError:moduleName.split 不是函数)
jest.mock(..)似乎不适用于我的测试的“描述”级别。
如果我有以下情况:
然后运行“测试”(即在测试级别),工作正常。
但是,如果我运行“描述”(即描述级别或套件级别),则会收到以下错误:
如果我有这个:
然后两种方式都行不通。
我也试过这个:
它不起作用。
更新
我也试过这个,但它不起作用:
javascript - 开玩笑期望一个内部有函数的对象
我正在编写一个 Jest 测试,其中我调用一个函数并期望返回一个对象,如下所示:
为了举例,所有这些函数现在都是示例。我现在,导出函数,然后在测试中使用它,如下所示:
我得到的错误是:
我需要模拟从存储库对象返回的对象。但是,该对象由代码中所示的命名函数组成。无论如何要模拟带有内部功能的对象吗?
asynchronous - 开玩笑 - 如何模拟网络延迟
我正在尝试在 Jest 中模拟一个慢速网络(使用 React 测试库)。我试图设置的条件是这样的:
- UI 处于特定状态
- 异步 AJAX 请求被触发
- ui改变状态
- 异步请求完成
在我看来,这将是一个相当普遍的要求,因为使用异步编程,您必须了解在发送 AJAX 请求和完成请求之间可能发生的情况。但是,我根本找不到这方面的任何讨论或工具。
node.js - 在 nodejs (JavaScript) 装饰器上编写 junit 测试用例时如何初始化?找不到我的服装装饰师(身体上课)
在 nodejs (JavaScript) 装饰器上编写 junit 测试用例时如何初始化?找不到我的服装装饰师(身体上课)。
当我尝试执行这个 Testclass(UserController.spec.ts Node.js 我收到以下错误
import { BodyToClass } from 'src/shared/decorators/body' 找不到模块,虽然我已经导入包,所以
所以,我的问题是:
1:我们如何在编写测试用例时模拟装饰器。2:我们需要初始化或模拟“@BodyToClass()”吗?3:我在哪里做错了?
reactjs - 获取模拟错误。没有为 POST 定义回退响应
我需要开玩笑地测试一个异步函数(redux thunk)。为此,我决定使用 fetchMock。但我遇到了问题。测试成功结束,但我从 fetch 中得到一个错误
开玩笑的测试块:
获取模拟元素:
身体:
标题:
reactjs - 开玩笑测试 - 如何处理 JsonWebToken 响应
我正在学习如何测试我的 redux thunk 操作,我的登录响应包括一个随机的 JsonWebToken。我编写了一个名为的变量expectedActions
,它匹配从操作返回的所有数据,除了如何处理随机字符串 (JWT)。关于如何处理这个问题的任何想法?
-- 另外,我需要传递真实的用户信息(用户名/密码)来获得LOGIN_SUCCESS
响应,否则函数会调度LOGIN_FAIL
操作。这正常吗?
奖励:有什么意义fetchMock
?我从另一个 StackOverflow 问题中借用了上面的代码,但我还没有理解 fetchMock 在做什么。
jestjs - 没有回调作为参数的模拟函数
我有 dh.js
在我的 dh.test.ts
在 dh.js中, checkDExistsCallback函数在满足 'if' 条件后被调用checkDCollectionExists 。当您查看 dh.test.ts 文件时,我一开始就模拟了 checkDCollectionExists 函数,但是在运行测试时它没有调用模拟函数,而是调用了实际函数。你能帮我弄清楚吗?
javascript - 如何设置此 JS 代码以进行更好的测试?
大家好,我在使用 Jest 测试以下 JS 时遇到问题。它从 waitForWorker 开始。如果响应是“工作”,那么它会再次调用 waitForWorker()。我尝试了 Jest 测试,但我不知道如何测试内部函数调用,我一直在研究并且失败了。
我的一些测试如下,因为我无法与任何人仔细检查。我不知道在测试中两次调用 await Worker.checkWorkerStatus() 是否是最好的方法,因为如果响应 data.status 为“工作”,waitForWorker 应该再次调用它