본문 바로가기

Projects2

[42blind] Service 계층 통합 테스트 이 글은 NestJS를 사용하면서 Service 계층 통합 테스트에 대한 고민을 다룬 글입니다. 아직 이해가 부족한 부분이 많기 때문에 더 좋은 방향을 알려주시면 큰 도움이 될 것 같습니다. 한 줄 요약 SQLite In-memory DB를 활용한 통합 테스트를 진행하기로 결정했습니다. Github Action을 활용한 e2e 테스트에서 실제 배포 환경과 동일하게 구성하여 진행하고, 필요시 Testcontainers를 도입하거나 단위테스트로 분리하는 리펙토링을 진행하기로 결정했습니다. Service 계층 테스트 문제점 처음 테스트를 작성할 때, 모든 의존성을 Mock/Stub를 사용해서 단위 테스트를 작성하는 방식으로 접근했습니다. 하지만 현재 비즈니스 로직은 단위 테스트를 진행할 만큼 복잡하지 않았고,.. 2024. 2. 25.
[42blind] TDD와 Github action 도입 한 줄 요약 현재까지의 개발 프로세스에 문제점을 느끼고 해결 방안으로 TDD를 도입하기로 결정했습니다. 테스트를 자동화하기 위해 github action workflows를 추가했으며, 런타임 환경이 추가됨에 따라서 환경변수를 정의하는 .env 파일을 분리했습니다. TDD 도입 Github action workflows 추가 OS: ubuntu-22.04 DB: mysql 8.0.35 (default) Engine: Node.js 20.11.0 Test: Jest ^29.5.0 환경변수(.env) 분리 .env.prod: 프로덕션 환경 .env.local: 로컬 개발 환경 secrets.ENV_TEST: github action 테스트 환경 개발 프로세스 문제점 1. 지금 API 테스트 가능한가요? 프론.. 2024. 2. 5.