我从不直接调用 WebSocket;它是 Asteroid 的依赖项。为什么 Jest 加载失败?
此外,这应该是一个默认的 create-react-app
测试,用于检查应用程序“呈现而不会崩溃”。但是应用程序加载正常,即使 Jest 测试表明它应该崩溃。
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/