如何利用Request to integration test async Koa Node API

时间:2017-06-21 14:45:47

标签: javascript node.js request jestjs koa

我正在使用Koa2和Request处理我的第一个真实世界节点项目,以便向第三方发出RESTful API调用。 Koa服务本身相对简单,但我尝试使用Jest为它编写集成测试。我找到了examples of using Jest with Supertest/Superagent,但我无法找到我如何使用ONLY Jest和Request作为http客户端编写等效测试。以下是Jest / Supertest示例......

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);
    });
})

似乎我应该能够使用Request来做supertest / superagent在这里做的事情,但我找不到任何例子。谢谢你的建议!

1 个答案:

答案 0 :(得分:0)

Supertest看起来很神奇,因为你可以将它传递给app并以某种方式起作用。

在幕后,Supertest刚开始收听并配置使用该地址作为基本网址的基础请求。

我在这里使用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)
    });
})