PracticeEveryday
Supertest 본문
Supertest
- HTTP assertion( 주장, 행사 )을 쉽게 만들어주는 라이브러리
yarn add --dev supertest
- 사용 방법
// app.js
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');
// .get('/user/list')
// .post('/user')
// .put('/user/36')
// .delete('/user/36')
※ Header Field 지정
- Accept, Content-Type, Content-Length 등의 헤더 필도에 값을 지정
request(app)
.get('/user')
.set('Accept', 'application/json')
.type('application/json'); // Content-Type은 축약해서 사용 가능
// 아래 코드와 동일하게 동작
// .set('Content-Type', 'application/json')
※ 데이터 첨부
- Query String
request(app)
.get('/user')
.query({ name: 'modolee' })
// .query('name=modolee')
- Body
request(app)
.post('/user')
.type('application/json')
.send({ name: 'modolee' });
- Multipart Files
request(app)
.post('/upload')
.attach('image1', 'path/to/image.png');
※ Response Assertion
- Status Code
request(app)
.get('/user')
.expect(200);
// .expect(404)
// .expect(204)
- Status Code & Body
request(app)
.get('/user')
.expect(200, { name: 'modolee' });
// .expect(200, 'some string');
- Body
request(app)
.get('/user')
.expect({ name: 'modolee' });
// .expect('some string');
- Header field
request(app)
.get('/user')
.expect('Content-Type', /json/);
Supertest 사용법 (1) - 개요,설치,사용방법
HTTP assertion을 쉽게 만들어주는 라이브러리 Supertest의 사용법에 대해서 알아봅니다. 개요, 설치, 사용방법
velog.io
Comments