신입 취준생인데..

깃헙 프로젝트들 보다보면 거의 대부분 각 계층을 mockito 사용해서 단위테스트를 하던데 어떤 이유로 선택하는거야? 

특히 f-lab에있는 프로젝트는 거의다 이방식을 선택하네?


내가 생각하기로 이방식 선택하는이유는

1. 코드에 대한 빠른 피드백 받아볼수있음

2. 계층별 코드 동작에대해 격리시킨채로 테스트할수있음


이거 2가지거든? 근데 나는 모킹이란건 외부API와 같은 내가컨트롤하기 까다로운부분들을 모킹해야 적절하게 사용하는거라고생각해.

그리고 위의 방식으로 테스트하는방식의 문제점이 


첫번째로는 실제 데이터가 들어갔을때 제대로 동작한다는 보장이 없는것.. (given.. then 의 답정너 형식의 테스트..?) 

두번쨰로는 목이라는것 자체가 리팩터링에 취약해서 조건 하나 바뀌면 다 수정해야하고.. 목을 걷어내는것도 비용이라고 알고있어


나도 이전에는 mock사용해서 테스트 작성하는방법을 했었는데.. 요즘엔 @SpringBootTest로 하는편이거든..

물론 각방법의 장단점은 있으니까 둘다 보이게 된다면 납득은할수있지만 거의 90%이상이 Mock으로 테스트하네.. 

그럼 내가 놓치는 무언가 더큰 장점이있다는건데 어떤걸까? 어느쪽이 더 좋다고 생각하는건아닌데 그냥 대부분 장악하고있어서 궁금해서 글남겨봄..