Jest를 이용한 클래스 모킹과 테스팅
www.daleseo.com
ES6에서 클래스(class)가 도입되고 타입스크립트가 대중화되면서 이제 클래스를 사용하는 자바스크립트 코드를 흔하게 볼 수 있게 되었습니다. 뿐만 아니라 Angular나 NestJS처럼 클래스를 기반으로 동작하는 라이브러리나 프레임워크도 점점 늘어나고 있지요. 하지만 아직 클래스를 모킹하거나 테스팅하시는데 어려움을 겪는 개발자 분들이 많은 것 같습니다.
이번 포스팅에서는 자바스크립트의 대표적인 테스팅 프레임워크인 Jest를 사용하여 클래스를 모킹(mocking)하고 테스트 코드를 작성해보겠습니다.
📝 포스팅: https://www.daleseo.com/jest-class-mocks/
🧑💻 실습 코드: https://stackblitz.com/edit/jest-class-mocks?file=src%2Fclass-mock%2Fauth.service2.test.ts
클래스에 대한 테스트를 작성하실 때는 가급적 jest.mock()을 사용하여 모듈을 모킹하기 보다는 의존성 주입이 가능하도록 애플리케이션 코드를 리팩토링(refactoring)해보시라고 추천드리고 싶습니다. 애초에 클래스 간에 느슨하게 결합되도록 애플리케이션 코드의 구조가 잡혀 있으면 테스트 코드를 작성하고 수월해지고 테스트 코드를 유지보수하기도 좋을 것입니다.
테스팅 프레임워크인 Jest를 공부하고 계신다면 아래 게시물도 같이 참고해보시면 도움이 될 것 같습니다.
📕 Jest 테스팅 프레임워크 기초: https://careerly.co.kr/comments/88205
📗 Jest로 비동기 코드에 대한 테스트 작성하기 https://careerly.co.kr/comments/88614
📘 Jest로 테스트 전/후 처리하기: https://careerly.co.kr/comments/88874
📙 Jest의 jest.fn(), jest.spyOn()를 이용한 함수 모킹: https://careerly.co.kr/comments/89329
📓 Jest의 jest.mock()을 이용한 모듈 모킹: https://careerly.co.kr/comments/89815
📔 Jest로 스냅샷(snapshot) 테스트하기: https://careerly.co.kr/comments/90238
📕 Jest로 파라미터화 테스트하기: https://careerly.co.kr/comments/91398
📗 Jest로 테스트 커버리지 수집하기: https://careerly.co.kr/comments/92894
📘 Jest와 Supertest 활용한 NestJS 테스트: https://careerly.co.kr/comments/98142
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 1월 30일 오후 9:45