혹시 테스트 실행을 위해 매번 DB를 실행하거나, Docker를 실행시키시나요?
혹은 테스트 실행마다, 환경에 관계없이 멱등한 테스트 환경을 원하시나요?
이러한 불편함을 TestContainer를 통해 해결해봅시다!
테스트 환경을 만드는 과정에서 신경써야 할 부분은 다양하겠지만 그중에서도 특히나 주의해야할 부분 중 하나는 바로 멱등성입니다.
멱등성을 간과한 경우에는 예상치 못한 상황에서 다른 테스트 혹은 외부 모듈로 인해 테스트가 간헐적으로 실패할 수 있으며, 이 경우 실패 구간을 찾기 매우 어렵다는 특징을 가지고 있기 때문입니다.
팀원 중 한분이 로컬환경에서 개발을 한 후 PR을 남기게 되었습니다.
분명 해당 팀원은 로컬상에서 테스트가 성공적으로 수행되는 것을 확인하였고, PR을 올렸지만,
이를 확인하는 다른 팀원의 로컬상에서는 테스트 일부가 계속 실패하게 되었습니다.
로컬 환경에서 잘 실행되던 테스트가 누군가의 환경에서는 깨지기 시작하니
팀원들이 테스트를 신뢰할 수 없게되고, 테스트를 실행하는 것에 대한 극심한 피로감을 겪기 시작했습니다.
이러한 문제는 서로 달랐던 DB의 인코딩 방식에 의해서 발생했었던 문제였습니다!

따라서 누가 실행하던 항상 동일한 환경에서 멱등한 결과를 도출하도록 만들어야 했습니다!