问题标签 [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.

0 投票
1 回答
60 浏览

reactjs - 反应应用程序中的条件组件导入

fetch-mock用来模拟使用 fetch 的实际组件。fetch-mock 不支持 ie11 并且希望仅在支持浏览器的情况下导入示例组件。我怎样才能做到这一点?

  1. ABCExampleComponentfetch-mock用于ABCComponent 中使用fetch的模拟。
  2. 仅当浏览器受支持时,LoadComponent 才应呈现 ABCExampleComponent。

加载组件

感谢您的建议。

0 投票
0 回答
718 浏览

reactjs - Enzyme/Karma 中的 wrapper.children().debug() 和 .html() 返回不同的内容

使用fetchMock我想确保 React 组件将显示来自外部 API 的新闻故事。这些测试一直通过,直到我将 React 从 15.4.2 更新到 16.4.2 并将 Enzyme 从 2.9.1 更新到 3.7.0。

问题是当我运行时yarn run test它告诉我Error: Method “props” is only meant to be run on a single node. 0 found instead.

放置调试器并运行wrapper.children().debug()会显示 HTML,但不会显示任何来自 fetch 的新闻文章。但是,wrapper.html()显示所有文章,这正是我想要的。我怎样才能运行测试,以便它在wrapper.html()not中测试内容wrapper.children().debug()

规格文件:

以下返回wrapper.children().debug().

以下返回wrapper.html().

新闻反应组件

0 投票
1 回答
1346 浏览

javascript - 使用 fetch-mock 测试 React Redux 异步操作 - “无法读取未定义的属性 'then'”

我在测试 react redux 异步操作时遇到了一些问题,由于某种原因 store.dispatch 返回 undefined 并且 .then 方法不起作用。

当我 console.log store.dispatch(actions.requestChartData()) 它给我以下错误:

fetch-mock:没有为 GET 定义回退响应到 https://swapi.co/api/people

女巫意味着没有模拟响应并且它是未定义的。

我不知道我的错误在哪里,在 url 或我缺少的东西中。任何帮助将不胜感激

这是我的 action.js 代码:

还有我的 action.test.js 文件:

0 投票
1 回答
3734 浏览

javascript - 无法使用 fetch-mock 模拟 node-fetch

我正在尝试对一个简单的函数进行单元测试,该函数发送一个 get 请求,接收一个响应,然后返回一个带有成功或失败消息的 promise 对象。以下是函数:

在进行单元测试时,我使用 fetch-mock 来模拟对 api 的调用并具有自定义响应。以下是代码:

但是这段代码并没有模拟获取请求,因为当我打印响应文本时,它是“太多请求”,它作为 API 的响应发送,而不是被模拟的“太多无”。我是 NodeJS 的新手。请告诉我我做错了什么。

0 投票
1 回答
321 浏览

reactjs - fetchMock:未捕获的类型错误

我用 fetchMock (v.5.13.1) 模拟了我的 API-Respones。我已经使用它很长时间了,我还没有看到这种行为。

我嘲笑了两个非常相似的 GET 响应。

现在,第一个工作正常,但第二个 get 向我返回此错误消息:

fetch-mock.js:187 Uncaught TypeError:无效状态 RELEASED 传递给响应对象。要使用具有状态作为属性的 JSON 对象进行响应,请将对象分配给 body,例如 {"body": {"status: "registered"}}

我有一个假设,我不能模拟一些包含状态的响应,因为这在某种程度上是状态代码的保留属性,但我不太确定,我在网上找不到任何类似的错误。

0 投票
1 回答
4435 浏览

javascript - TypeError: 无法设置 # 的属性 localStorage只有一个吸气剂

我在 unitests 中嘲笑 localStorage

并设置 localStorage 之类的

在我将 Node 更新为10.15.1.

它正在抛出错误TypeError: Cannot set property localStorage of #<Window> which has only a getter

关于如何模拟 localStorage 并将其设置为 window.localStorage 的任何想法。

PS我在localStorage上得到了类似的答案setItemgetItem有什么方法可以一次设置整个localStorage。

0 投票
0 回答
1765 浏览

javascript - 为什么fetchmock restore会给出无与伦比的get?

我已经根据已经定义的测试用例编写了逻辑。基本上,tc 检查下面的一个服务器调用是代码。如何修改我的逻辑以使 tc 通过?

这是测试用例:

这是编写的逻辑。它基本上是调用电影,尝试获取它,检查所选收藏夹是否存在,如果不存在则添加

错误是:

0 投票
2 回答
11051 浏览

node.js - 如何使用 node-fetch、supertest 和 typescript 设置 fetch-mock

我正在尝试向我的节点 typecipt 项目添加一些笑话测试。我想使用 supertest 来调用我的 koa 路由器,但也使用 fetch-mock 来模拟使用 node-fetch 发出的请求。

到目前为止,我的解决方案如下,但是我的路由器中的 fetch 没有使用带有 fetch-mock 的模拟 fetch 设置。单元测试失败,因为没有返回我模拟的预期响应。我曾尝试遵循 global fetch mocking 的文档,但没有成功,并且 typescript 使我很难遵循我找到的非 typescript 解决方案。如果可能,我想避免使用非全局沙箱,因为我必须重新编写大量代码来传递获取。

服务器.spec.ts

服务器.ts

0 投票
1 回答
2246 浏览

redux - 使用 Jest 进行 React-Redux 测试:收到的有效负载 = 未定义

我正在尝试在我的 react-redux 应用程序中学习/实现玩笑测试。我的测试失败,说接收到的不等于预期,但是,实际的 thunk 工作并将数据返回到我的应用程序。所以我要么写错了测试(我基本上是从 redux-docs 复制/粘贴的),要么我写错了我的 thunk。

行动

测试

测试结果输出:

编辑-更新在@CoryDanielson 的建议下,我使用 axios-mock-adapter 和这篇文章重新进行了测试,但我仍然遇到与上述相同的错误。

记录:

当我返回控制台状态时,console.log(store.getActions()); 它给了我错误调度动作

这又console.log(store.dispatch(oddActions.getOddGroups()));回来了Promise { <pending> }

最终解决方案:

在尝试了几个选项并失败后,我放弃了使用 axios-mock-adapter 并改用 moxios。阅读本文后,我能够成功创建测试。

0 投票
1 回答
760 浏览

typescript - 如何使用 fetch-mock 获取请求的正文

我有一些测试用于fetch-mock模拟带有正文中参数的发布请求。

我可以模拟请求,但我找不到根据请求正文返回响应的方法。

可以说我有一个发布请求:

目前我的模拟看起来像这样:

但它说 opts.body 是一个“BodyInit”对象并且没有属性“标志”。

我找到了文档,但我在任何地方都找不到正确的方法。如何从请求中获取参数到我的模拟响应?这种方式是最佳做法吗?也许我应该使用 a 分隔请求FunctionMatcher(这对我也不起作用)?