【问题标题】:Testing Apollo Client subscriptions测试 Apollo 客户端订阅
【发布时间】:2017-12-25 23:34:23
【问题描述】:

我最近在我的 React+Redux+ApolloGraphQL 应用程序中添加了对通过 WebSockets 订阅的支持。既然这样做了,我就不能再运行我的单元测试了。

我想出的问题是:

Unable to find native implementation, or alternative implementation for WebSocket!

在我运行测试的节点环境中,似乎没有可用的 WebSocket 实现。

this bug report 中有几个建议的解决方案涉及使用节点的“ws”库,但我无法使它们工作。要么我无法正确加载库,要么可以但应用程序无法正常工作。

我正在考虑一种根据我所在的环境加载库的方法,但是:

  1. 我不知道该怎么做
  2. 我不知道这是否是正确的方法。

有什么建议吗?

【问题讨论】:

  • 你能分享一份复制品吗?
  • 复制什么?自从我添加订阅后,我一直无法运行正常的测试

标签: unit-testing graphql subscription apollo apollo-client


【解决方案1】:

您是如何进行测试的?就我而言,我使用的是 Jest,所以我在 setupTests 文件中放入了这段代码(在运行所有测试之前执行):

import WebSocket from 'ws';
Object.assign(global, {
  WebSocket,
});

这是必要的,因为对于不在浏览器中运行的测试,没有原生的 Web Socket 实现。

【讨论】:

    猜你喜欢
    • 2017-12-01
    • 2022-12-12
    • 2018-12-30
    • 2020-11-20
    • 2019-02-02
    • 2018-07-08
    • 2017-08-26
    • 2020-08-31
    • 2019-01-18
    相关资源
    最近更新 更多