2017-08-15 13 views
1

私はWebSocketを直接呼び出すことはありません。それは小惑星の依存性です。なぜJestはそれを読み込めませんか? また、これはデフォルトのcreate-react-appテストで、アプリケーション「レンダリングをクラッシュせずに」チェックすることになっています。しかし、アプリは、冗談テストがクラッシュするはずだと言っても、うまくロードされます。Jest referenceErrorは定義されていません。

私のコミット: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 

を任意の助けてくれてありがとう

答えて

1

私はあなたがコンストラクタなどに使用したいのWebSocketを指定することができます考え出した前に、私はしばらくの間、小惑星によって盗聴されていますso:

0

WebSocketクラスはnodejsでグローバルに存在していませんが、ブラウザではそれはありません。テスト中にこのクラスをグローバルにモックまたは定義する必要があります。私は、この特定の問題に直面したことがありませんが、私はあなたがこれを試すことができると思います。

// in App.test.tsx 
const WebSocket = require('ws') 
global.WebSocket= WebSocket 

//your tests... 
+0

ありがとうございますが、問題は修正されませんでした – Falieson

関連する問題