테스트 환경 격리
최근 테스트 환경을 격리하는 문제에 대해 고민하고 있었다.
다음 테스트에 영향을 미치지 않으려면 테스트마다 생긴 사이드 이팩트를 제거해야한다.
본인은 아래처럼 매 테스트에서 DB에 데이터를 넣고 종료 시 DB 내용을 지워줬었다.
하지만 최근 @Transactional 테스트를 알게 된 후 몇몇 주의점이 있지만 @Transactional 테스트가 편하긴 하니
주의해야할 점만 생각해보고 그냥 @Transactional 테스트를 써야할지에 대한 고민과,
이렇게 매 테스트마다 DB에 데이터를 넣어주는게 맞을까 라는 생각이 들었다.
특히 연관관계 때문에 연관 된 엔티티가 늘어날 수록 given 절에 해당하는 테스트 사전 작업이 너무 번거로워졌다.
그러던 중 IDIOT-s의 한 개발자 분께 여쭤보니 Repository를 Mocking 해서 사용한다는 이야기를 들었다.
처음 테스트 코드를 작성할 때는 Repository나 Service 레이어는 Mocking 하지 않는게 좋다고 생각했지만,
점점 그 방법 또한 나쁘지 않을 수 있다는 생각이 들었다.
좋은 테스트의 조건인 빠른 테스트에 부합되기도 하고 연관된 엔티티가 늘어나면 이런저런 번거로운 작업이 줄어들지 않을까?
이런건 아무래도 팀바팀일 확률이 높아 보이는데 현업에서는 어떻게 다룰지 궁금하다.
이에 관해서는 좀 더 공부해보고 이것저것 시도해보고 좋은 방법을 찾아봐야겠다.
'주절주절' 카테고리의 다른 글
[주절주절] 리눅스 공부의 필요성 (0) | 2024.06.10 |
---|---|
[주절주절] DB 공부를 하자 (0) | 2024.05.22 |
[주절주절] 최종 팀 프로젝트 끝 (0) | 2024.05.17 |
[주절주절] Re:Dash (0) | 2024.03.28 |
[주절주절] 2차 팀프로젝트 발표 (0) | 2024.03.25 |