혹시 테스트 실행을 위해 매번 DB를 실행하거나, Docker를 실행시키시나요?

혹은 테스트 실행마다, 환경에 관계없이 멱등한 테스트 환경을 원하시나요?

이러한 불편함을 TestContainer를 통해 해결해봅시다!

1. 테스트 환경과 멱등성

테스트 환경을 만드는 과정에서 신경써야 할 부분은 다양하겠지만 그중에서도 특히나 주의해야할 부분 중 하나는 바로 멱등성입니다.

멱등성을 간과한 경우에는 예상치 못한 상황에서 다른 테스트 혹은 외부 모듈로 인해 테스트가 간헐적으로 실패할 수 있으며, 이 경우 실패 구간을 찾기 매우 어렵다는 특징을 가지고 있기 때문입니다.

2. 멱등성을 간과했던 사례

팀원 중 한분이 로컬환경에서 개발을 한 후 PR을 남기게 되었습니다.

분명 해당 팀원은 로컬상에서 테스트가 성공적으로 수행되는 것을 확인하였고, PR을 올렸지만,

이를 확인하는 다른 팀원의 로컬상에서는 테스트 일부가 계속 실패하게 되었습니다.

로컬 환경에서 잘 실행되던 테스트가 누군가의 환경에서는 깨지기 시작하니

팀원들이 테스트를 신뢰할 수 없게되고, 테스트를 실행하는 것에 대한 극심한 피로감을 겪기 시작했습니다.

이러한 문제는 서로 달랐던 DB의 인코딩 방식에 의해서 발생했었던 문제였습니다!

Untitled

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