javascript - Jest 引用错误 'is not defined'

标签 javascript reactjs jestjs

我从不直接调用 WebSocket;它是 Asteroid 的依赖项。为什么 Jest 加载失败?

此外,这应该是一个默认的 create-react-app 测试,用于检查应用程序“呈现而不会崩溃”。但是应用程序加载正常,即使 Jest 测试表明它应该崩溃。

我的提交:https://github.com/Falieson/typescript-react-asteroid-meteor/commit/ab640bee540f1f2f5da2f0fe7b4be58f75b83d28#commitcomment-23644562

node scripts/test.js --env=jsdom --silent

输出:

 FAIL  src/routes/App.test.tsx
  ● Test suite failed to run

    ReferenceError: WebSocket is not defined

      at Asteroid.init (node_modules/asteroid/lib/base-mixins/ddp.js:46:67)
      at node_modules/asteroid/lib/asteroid.js:72:33
      at Array.forEach (native)
      at new Asteroid (node_modules/asteroid/lib/asteroid.js:70:16)
      at Object.<anonymous> (src/config/asteroid.ts:6:16)
      at Object.<anonymous> (src/routes/Login.tsx:14:18)
      at Object.<anonymous> (src/routes/App.tsx:19:15)
      at Object.<anonymous> (src/routes/App.test.tsx:5:13)
          at <anonymous>
      at process._tickCallback (internal/process/next_tick.js:188:7)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        1.915s

最佳答案

在我发现你可以像这样在构造函数中指定你想使用的 websocket 之前,我被 Asteroid 窃听了一段时间:

const asteroid = require('asteroid');
const WebSocket = require('ws');

const Connection = asteroid.createClass()

const portal = new Connection({
    endpoint: 'ws://localhost:3000/websocket',
    SocketConstructor: WebSocket // <-------------- HERE
})

关于javascript - Jest 引用错误 'is not defined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684811/

相关文章:

javascript - 在功能组件中使用 useParams 钩子(Hook)获取 id - react router dom v6

javascript - jest-jasmine2 env.js 未处理的错误

javascript promise 链不等待先前的 promise 执行

javascript - 为什么我的 AJAX 请求在 Codepen.io 中不起作用?

javascript - 理解transferPropsTo

typescript - 找不到模块 './SLink.svelte' 或其对应的类型声明

node.js - ReferenceError:未使用 Jest 定义测试

javascript - knockout 绑定(bind)处理程序拆卸功能?

javascript - Get Jquery Chosen 选项显示在 Jquery 对话框之外。

javascript - 警告 : React does not recognize the `viewState` prop on a DOM element