목록 보기
[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)
백엔드

[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)

데보션
데보션
2024년 9월 6일

두줄요약

TypeORM에서 트랜잭션 기반 테스트 격리 시 세션이 달라지는 문제를 분석했습니다. 하나의 세션을 고정하기 위해 QueryRunner와 Repository 주입 방식을 사용했습니다.

핵심 내용

  • TypeORM 환경에서 트랜잭션으로 테스트를 격리하려 했지만, 테스트마다 서로 다른 세션이 사용되어 데이터가 보이지 않는 문제 발생
  • 격리수준을 낮추는 방식은 읽기 문제를 일부 완화해도 데드락과 의도치 않은 커밋 문제를 남김
  • 하나의 세션을 테스트 전체에 고정하는 방식으로 접근 방향 전환
  • DataSource와 QueryRunner, Repository 생성 시 queryRunner 주입을 통해 동일 세션과 롤백 가능한 테스트 환경 구성

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...