WEBBOOK CHAPTER

테스트를 많이 말고, 위험을 정확히: 22장. Testcontainers 실습 설계

22장. Testcontainers 실습 설계

실제 PostgreSQL major version을 container로 띄우고 migration, seed, concurrent transaction, outbox commit을 검증한다. container ready log만 기다리지 않고 실제 query가 성공할 때까지 제한 대기한다. port는 동적으로 받고 test process와 연결한다.

각 test가 container를 새로 만들면 느리고, suite 공유는 상태 누수를 만든다. schema/database 분리, transaction, truncation 중 업무 특성에 맞는 초기화를 선택한다. 실패 뒤 container log·DB version·migration hash를 artifact로 남기되 secret은 제외한다. local Docker가 없는 환경의 명확한 skip 또는 대체 경로를 문서화한다. 운영 DB dump는 fixture로 사용하지 않는다.