본문 바로가기

프로젝트/스터디타임

mock을 활용한 테스트

프로젝트에 사용되는 service, repository가 늘어나니 테스트도 복잡해졌다.

예를 들어 MembershipService를 테스트하고 싶은데, 그러려면 MembershipService가 의존성을 지니는 User, Study 관련 내용을 설정해 주어야 했다. 실제 테스트 코드보다 given에 쓰는 코드가 더 길어지니 테스트 수행에 어려움이 많았다.


문제를 해결하려 검색을 하다 가려운 곳을 정확히 긁어주는 글을 찾았다.

https://jojoldu.tistory.com/226


mock을 사용하면 아주 쉽게 문제를 해결할 수 있었다.

상세한 내용은 위 블로그에 아주 잘 정리되어 있다.


블로그 글을 따라 mock를 사용했더니 코드가 아래처럼 정리됐다.

원래 코드는 db에 user 생성해서 넣고, study 생성해서 넣고... 복잡했었는데 가독성이 훨씬 좋다.

가독성 뿐만 아니라 다른 클래스 코드 변경에 대한 의존성이 낮기 때문에 더 좋은 테스트 케이스가 된 것 같다.


실제로 경험해보니, 유닛테스트를 공부하며 몇 번이나 들었던 '테스트 코드 격리의 필요성'을 확실히 알 것 같다.

프로젝트가 정말 커지면 그 필요성은 더욱 부각될 것 같다.



'프로젝트 > 스터디타임' 카테고리의 다른 글

dto와 entity를 구분해서 구현한 이유  (0) 2019.03.21