2017-06-21 17 views
2

私はKoa2とRequestを使って、サードパーティにRESTfulなAPI呼び出しを行うための私の最初の実世界のNodeプロジェクトに取り組んでいます。 Koaサービス自体は比較的シンプルですが、私はJestを使ってそのための統合テストを書こうとしています。私はexamples of using Jest with Supertest/Superagentを見つけましたが、httpクライアントとしてJestとRequestだけを使って同等のテストを書く方法を見つけることはできません。以下は、私はちょうどsupertest /たSuperAgentがここでやっていることと同じことを行うための要求を使用することができるはずのように思え統合テストへのリクエストasync Koa Node API

const request = require('supertest'); 
const app = require('../../src/app') 
describe('Test the root path',() => { 
    test('It should response the GET method', async() => { 
     const response = await request(app).get('/'); 
     expect(response.statusCode).toBe(200); 
    }); 
}) 

...冗談/ Supertestの一例ですが、私は任意の例を見つける傾けます。提案ありがとう!

答えて

0

あなたがそれをあなたのappに渡すことができ、何とかそれがちょうどうまくいくので、Supertestは魔法に見えます。

Supertest justsはリスンを開始し、そのアドレスをベースURLとして使用する基本的なリクエストを設定します。

ここでは例としてAxiosを使用していますが、私はRequestを使用しませんが、調整するのは簡単なはずです。

const axios = require('axios') 
const app = require('../../src/app') 
const server = app.listen() // random port 

const url = `http://127.0.0.1:${server.address().port}` 

const request = axios.create({ baseURL: url }) 

describe('Test the root path',() => { 
    test('It should response the GET method', async() => { 
     const response = await request.get('/') 
     expect(response.statusCode).toBe(200) 
    }); 
})