본 문서는 2022년 1월 19일 에 작성되었습니다.
저번 달에 클린 코드 와 클린 애자일 을 읽고 나서, TDD가 무엇인가? 라는 생각을 하게 되었습니다. 또한 이 부분은 실제로 TTD 를 실천하면서 경험할 부분이라고 생각해서 대략적 개요만을 적어 볼 생각입니다.
유닛 테스트, 단위 테스트는
하나의 모듈이 의도한 대로 작동하는 지 에 대해서 테스트하는 것입니다
대표적인 라이브러리로는 jest 가 있습니다.
npm i jest -d
통합 테스트는
서로 연결된 모듈이 모두 제대로 작동하는 지 에 대해서 테스트하는 것입니다.
더 정확히는 하나의 router 를 통째로 테스트 하는 것이라고 생각하면 좋습니다.
하나의 router 에는 많은 미들웨어가 붙어있고 다양한 라이브러리 가 사용됩니다.
이러한 것들이 모두 유기적으로 잘 작동하는 지를 테스트하는 것입니다.
대표적인 라이브러리로는 suuperset 이 있습니다.
npm i supertest -d
부하 테스트는
개발된 서버가 얼마만큼의 트래픽을 감당할 수 있는 지 에 대해서 테스트하는 것입니다.
여기서 주의할 점은 부하 테스트의 결과로 서비스가 중지될 수 있다는 점 입니다.
localhost:포트번호 에 부하를 줄 때는 서비스가 중지되어도 상관 없습니다.
하지만, AWS * GCP 에 부하를 주면 실제 서비스가 멈추거나 과다 요금 청구가 발생할 수 있습니다.
대표적인 라이브러리로는 artillery 가 있습니다.
npm i artillery -d