Dot Programming/Spring
2022. 4. 3.
[Spring] TestContainers로 멱등성있는 MySql 테스트 환경 구축하기
멱등성있는 테스트 환경 구축해야 하는 이유 멱등성이란, 수학에서 사용하는 용어에서 유래한 것으로. 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 말한다. HTTP 메서드로 예를 들면, GET, PUT, DELETE 요청은 여러 번 요청해도 매번 요청 결과가 같아서 멱등성이 보장된다. 테스트 코드도 마찬가지로 어느 환경에서 실행해도 매번 동일한 요청 결과가 출력되어 멱등성이 보장되어야 한다. 배포나 로컬 환경에서 사용하는 DB가 서로 일치하지 않을 때 멱등성이 깨지는 경우가 발생한다. 예로, @DataJpaTest에는 @AutoConfigureTestDatabase가 명시되어 있어서 스프링 테스트는 자동으로 내장된 DB를 찾아 사용한다. 만약 배포 환경을 MySql DB를 사용하고 있다면 H2와..