[Node.js] Implementing a Test Isolation Environment Using Transactions (1/2) | Finding Solutions
NodeJS
• 이 글은 테스트 격리를 위해 트랜잭션을 사용하는 방법에 대해 설명하며, TypeORM이 세션 관리를 지원하지 않아 단일 테스트에서도 여러 세션이 연결되는 문제를 다루고 있다.
• 트랜잭션 전략과 정리 전략을 통해 테스트 간의 영향을 방지하려고 하지만, MySQL의 트랜잭션 격리 수준(REPEATABLE READ) 때문에 삽입된 데이터를 읽지 못하는 문제가 발생하며, 이는 서로 다른 세션에서 작업이 이루어지고 있음을 의미한다.
• 서비스와 픽스처가 서로 다른 데이터베이스 세션을 사용하고 있어, 동일한 세션을 사용하도록 조정이 필요함.
• READ UNCOMMITTED 격리 수준으로 변경하여 미커밋 데이터를 읽을 수 있지만, 이는 교착 상태를 유발할 수 있음.
북마크
공유하기
신고하기