test

부하 테스트 서버가 얼마만큼의 요청을 견딜 수 있는지 테스트를 해보자. 코드에 문법적, 논리적 문제가 없더라도 서버의 하드웨어 제약 때문에 서비스가 중단될 수 있다. 대표적인 경우가 OOM(Out of Memory)이다. 서버는 접속자들의 정보를 저장하기 위해 각각의 접속자마다 일정한 메모리를 할당한다. 이렇게 사용하는 메모리의 양이 증가하다가 서버의 메모리 용량을 넘어서게 되면 문제가 발생한다. artillery를 설치하고 서버를 실행해보자. npm i -D artillery npm start 그리고 터미널을 하나 더 실행시켜 다음 명령어를 이용하여 100명의 가상 사용자가 50번씩 요청을 보내게 해보자. npx artillery quick --count 100 -n 50 http://localhost..
통합 테스트 라우터를 통째로 테스트해보자. routes 폴더에 auth.test.js를 작성하자. 하나의 라우터에는 여러 개의 미들웨어가 붙어 있고, 다양한 라이브러리가 사용된다. 이런 것들이 모두 유기적으로 잘 작동하는지 테스트하는 것이 통합 테스트이다. supertest를 설치하자. npm i -D supertest supertest를 사용해 auth.js를 테스트할 것이다. supertest를 사용하기 위해서는 app 객체를 모듈로 만들어 분리해야 한다. const express = require('express'); const cookieParser = require('cookie-parser'); const morgan = require('morgan'); const path = require(..
테스트 커버리지 유닛 테스트를 진행하다 보면 어떤 부분이 테스트되고 어떤 부분이 테스트되지 않는지 궁금할 수 있다. jest의 기능중에 전체 코드 중에 테스트되고 있는 코드의 비율과 테스트되고 있지 않은 코드의 위치를 알려주는 jest의 기능이 있다. 이를 커버리지(coverage) 라고한다. "scripts": { "start": "nodemon app", "test": "jest", "coverage": "jest --coverage" }, 스크립트를 작성하자. 그리고 실행해보자. npm run coverage File은 파일, 폴더 이름, %Stmts는 구문 비율, %Branch는 if문 등의 분기점 비율, %Funcs는 함수 비율, %Lines는 코드 비율, Uncovered Line #s는 커버..
테스트 준비 NodeBird 서비스에 테스팅을 적용해보자. 실제 서비스를 개발 완료한 후, 개발자나 QA들은 자신이 만든 서비스가 제대로 동작하는지 테스트해본다. 이때 기능이 많다면 일일이 수작업으로 테스트하기에는 작업량이 너무 많다. 이런 경우 테스트를 자동화하여 프로그램이 프로그램을 테스트하도록 만들기도 한다. 하지만 아무리 테스트를 철저하게 해도 에러를 완전히 막는 것은 불가능하다. NodeBird 프로젝트에 jest 패키지를 설치하자. npm i -D jest package.json을 다음과 같이 수정하자. "scripts": { "start": "nodemon app", "test": "jest" }, routes 폴더 안에 middlewares.test.js를 만들자. 테스트용 파일은 파일명과..