PracticeEveryday

Supertest 본문

Test

Supertest

kimddakki 2022. 6. 11. 08:15
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

 

'Test' 카테고리의 다른 글

TypeScript + Mocha  (0) 2022.08.20
Should  (0) 2022.06.20
Supertest  (0) 2022.06.12
Jest  (0) 2022.06.10
JEST  (0) 2022.06.10
Comments