개요
- HTTP assertion을 쉽게 만들어주는 라이브러리
- 클라이언트 사이드 HTTP request 라이브러리 인 superagent를 기반으로 만들어짐
설치
yarn add --dev supertest
npm install --save-dev supertest
사용 방법
서버 코드
import express from 'express';
const app = express();
export default app;
테스트 코드
기본 코드
import request from 'supertest';
import app from './app';
request(app)
Method 및 Path 지정
- GET, POST, PUT, DELETE 등의 Method 지정
- Method와 함께 API Path를 문자열로 지정
request(app)
.get('/user');
- Accept, Content-Type, Content-Length 등의 헤더 필드에 값을 지정
request(app)
.get('/user')
.set('Accept', 'application/json')
.type('application/json');
데이터 첨부
request(app)
.get('/user')
.query({ name: 'modolee' })
request(app)
.post('/user')
.type('application/json')
.send({ name: 'modolee' });
request(app)
.post('/upload')
.attach('image1', 'path/to/image.png');
Response assertion
request(app)
.get('/user')
.expect(200);
request(app)
.get('/user')
.expect(200, { name: 'modolee' });
request(app)
.get('/user')
.expect({ name: 'modolee' });
request(app)
.get('/user')
.expect('Content-Type', /json/);