초보자를 위한 Jest 튜토리얼: SuperTest 또는 API 테스트 [4/4]
4161 단어 jestbeginnersjavascriptwebdev
소개
시리즈의 이 부분에서는 API 테스트의 기본 사항에 대해 설명합니다.
실습 코드는 내GitHub Repository에서 사용할 수 있습니다.
테스트 API는 매우 불편한 과정을 극복하기 위해 Node.js에서 supertest라는 라이브러리를 도입했습니다. 개발자는 SuperTest를 독립 실행형 라이브러리로 사용하거나 Jest 또는 Mocha와 같은 JavaScript 테스트 프레임워크와 함께 사용할 수 있습니다.
프로젝트에서 SuperTest 구성
SuperTest를 npm 모듈로 설치하고 package.json 파일에 개발 종속성으로 저장합니다.
npm install supertest --save-dev
설치 후 이제 간단히 호출하여 supertest를 참조할 수 있습니다
require('supertest');
.supertest를 시작하기 전에 시리즈의 이 부분에서 제공되는 코드를 시각화하고 이해하는 데 도움이 되는 디렉토리 구조를 공유하고 싶습니다.
디렉토리 구조
SuperTest 시작하기
API를 테스트하려면 먼저 API를 만든 다음 API에 다른 테스트를 추가로 적용해야 합니다.
아래와 같이
index.js
파일에 API를 생성했습니다.index.js
const express = require("express")
const app = express();
app.use(express.json());
const users = []
app.get('/users',(req,res)=>{
res.send(users);
})
app.post('/create-user',(req,res)=>{
const {name,password} = req.body;
users.push(req.body)
res.send(req.body);
})
module.exports = app;
참고: 모든 것을 단일 파일에 작성해야 하고 데이터베이스 대신 배열을 사용해야 한다는 것을 눈치채셨을 수도 있습니다. 코드를 간단하고 이해하기 쉽게 만들기 위해 이 모든 작업을 수행했습니다.
생성된 API가 제대로 작동하는지 테스트하기 위해 Thunder 클라이언트(vs 코드 확장)를 사용했습니다. 먼저 포스트 API를 사용하여 동일한 데이터를 게시해야 합니다. 그런 다음 아래 스냅과 같이 게시된 데이터를 얻었습니다.
이제 API를 생성한 후 원하는 대로 테스트 케이스를 작성합니다.
참고:
app.liste()
에서 index.js
를 분리하는 데 주의하십시오. 테스트를 실행할 때마다 index.js
에서 index.js
로 앱 모듈을 가져왔기 때문에 api.test.js
파일이 호출됩니다.따라서 가장 좋은 방법은
index.js
에서 앱 모듈을 내보내고 내 경우에는 server.js
를 사용하고 거기에서 app.listen()
를 사용하는 다른 파일로 가져오는 것입니다.api.test.js
const request = require('supertest');
const app = require("../index");
describe('GET APIs', () => {
test('It get all users', async () => {
let result = await request(app).get('/users')
expect(result.body.length).toBeGreaterThanOrEqual(0)
expect(result.statusCode).toBe(200)
})
})
describe('POST APIs', () => {
test('It should create user', async () => {
let result = await request(app).post('/create-user')
.send({
username: "Abid",
password: "1234"
})
expect(result.body).toEqual({
username: "Abid",
password: "1234"
})
expect(result.statusCode).toBe(200);
})
})
테스트 케이스를 작성한 후 다음 명령으로 테스트를 실행하십시오.
npm test // this command will test all test-cases in all test-suites
테스트 결과는 다음과 같습니다.
PASS __test__/sum.test.js
PASS __test__/index.test.js
PASS __test__/api.test.js
Test Suites: 3 passed, 3 total
Tests: 1 skipped, 4 passed, 5 total
Snapshots: 0 total
Time: 3.565 s
이것은 API 테스트의 기본 사항이며 삭제 및 업데이트를 위해 직접 수행하십시오.
결론
describe 함수를 사용하여 모든 GET API를 단일 그룹으로 결합하면 가독성이 향상됩니다. 다른 모든 HTTP 메소드에 대해 수행하십시오.
새로운 개념을 탐구하고 다른 사람들과 공유하는 것이 저의 열정이며 사람들을 돕고 영감을 주는 것이 저에게 기쁨입니다. 질문이 있으시면 언제든지 문의해 주세요!
, 및 GitHub에 연결
모든 사람이 개선할 여지가 있다는 것을 알고 있으므로 귀하의 제안에 감사드립니다. 그리고 새로운 것을 알고 싶습니다(❤️).
Reference
이 문제에 관하여(초보자를 위한 Jest 튜토리얼: SuperTest 또는 API 테스트 [4/4]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/abidullah786/jest-tutorial-for-beginners-supertest-or-apis-test-45-39ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)