2017-12-09 7 views
0

私はバックエンドにいくつかの簡単なテストを書こうとしていますが、非常に似たコードが機能するチュートリアルに従っていますが、自分のapp.use()については不満はありません。なぜそれはTypeErrorを投げるのですか?app.use()はミドルウェア機能を必要としますが、私のテストを実行するために私の現在のコードを置き換えることができますか?ここでnpm testがTypeErrorを返すのはなぜですか:サーバーが渡されると、app.use()はミドルウェア機能が必要ですか?

は私のコードです:ここでは

const express = require('express'); 
const request = require('supertest'); 
const app = express(); 

const api = require('../server'); 

// make api available 
app.use(api); 
//app.use(bodyParser); 

describe('games',() => { 
    it('should return a saved game',() => { 
     // send a request 
     return request(app) 
      .post('/games') 
      .send({title: 'test', released: '1995'}) 
      // verify response 
      .expect(201) 
      .expect(res => { 
       const game = res.body; 
       expect(game.title).toEqual('test'); 
       expect(game.released).toEqual('1995'); 
      }); 
    }); 
}); 

は、コンソールからのエラーです:

"C:\Program Files\nodejs\node.exe" C:\Users\Bertinator\Desktop\web-exam\node_modules\react-scripts\scripts\test.js --colors --setupTestFrameworkScriptFile "C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.4\plugins\JavaScriptLanguage\helpers\jest-intellij\lib\jest-intellij-jasmine.js" --testPathPattern ^C:\\Users\\Bertinator\\Desktop\\web\-exam\\src\\backend\\__tests__\\game\.jest\.js$ 
FAIL src\backend\__tests__\game.jest.js 
    ● Test suite failed to run 

    TypeError: app.use() requires a middleware function 

     at Function.use (node_modules/express/lib/application.js:210:11) 
     at Object.<anonymous> (src/backend/__tests__/game.jest.js:10:5) 
      at <anonymous> 

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

答えて

0

私は私のserver.jsに

module.exports = app; 

を追加することによって、それを固定 。 Jestはそれを有効なミドルウェアとして使用できませんでした。したがって、エラーです。

-2

app.use()は、URLとミドルウェアの少なくとも2つの引数をとります。私は../server/の内容を見ることができないので、何をすべきかの勧告を与えることはできません。

本当に良い答えを提供するには、../serverの内容を表示する必要があります。

関連する問題