![[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)](https://devocean.sk.com/thumnail/2024/9/4/b3b2d4017fdd951afd27980944ce8f41a68589d419b4b62b1b8d2c26328f8346.jpg)
[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)
8
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
Node.js에서 트랜잭션을 활용한 테스트 격리 환경 구현
이 게시물은 TypeORM을 사용한 Node.js 환경에서 트랜잭션을 통한 테스트 격리성 확보 방법을 설명합니다.테스트 격리성 전략
- 트랜잭션 전략: 테스트 시작과 종료 시 트랜잭션 시작 및 롤백
- 클린업 전략: 테스트 종료 후 DB 데이터를 삭제
주요 문제점과 해결책
- TypeORM은 세션을 관리하지 않아 테스트 간 세션이 다름
- 서로 다른 세션으로 인해 트랜잭션 내 삽입된 데이터가 읽히지 않는 문제 발생
- READ UNCOMMITTED 격리수준 변경 시 데드락 발생
- 하나의 세션만 사용하도록 QueryRunner를 활용해 Repository 인스턴스를 생성하여 문제 해결
기술적 상세
- DataSource에서 createQueryRunner로 쿼리러너 생성
- Repository에 쿼리러너 주입해 동일 세션 유지
- 직접 트랜잭션 관리로 원치 않는 자동 커밋 방지
다음편에서는 구축된 테스트 환경을 다룰 예정입니다.