-
Notifications
You must be signed in to change notification settings - Fork 3
3. 테스트 방식 결정
안금장 edited this page Dec 4, 2024
·
3 revisions
1. ex) 런던파 : Controller 테스트하면 Service는 모킹 / 고전파 : Controller 테스트하면 의존 가진 모든 것들 까지 실제 객체 이용
2. 런던파의 장단점 (단위테스트와 행위 검증에 집중, 모킹 적극 사용)
1. 장점
1. 테스트 실패 하는 경우 의존성이 없기에 테스트 대상만의 문제인 것을 알 수 있다.
2. 테스트 속도가 빠르다
2. 단점
1. 모킹을 지나치게 사용하면 실제 시스템과의 차이가 발생할 수 있다.
3. 고전파의 장단점 (통합테스트, 모킹 최소화)
1. 장점
1. 테스트가 실제 코드와 유사하게 동작할 가능성이 높다.
2. 시스템 전체에 대한 신뢰도가 더 크다
2. 단점
1. 테스트 속도가 느리다
2. 객체 간 의존성이 많으면 유지보수가 힘들다
초기에는 테스트 대상만의 문제임을 알 수 있고, 테스트 속도가 빠르기에 모킹을 도입하고자 했다.
그러나, 각각의 테스트가 성공하더라도 이것들이 합쳐졌을 때 잘 작동할지에 대해서는 확신이 없었다.
예를 들어 트랜잭션이 잘 작동하는 지 확인하는 것은 모킹만으로는 한계가 있다고 생각했다. 이에 우리 팀은 통합테스트를 도입하기로 결정했다.
프로젝트를 완성했을 때 한 사람이 작성한 코드 처럼 보이는 것이 좋다고 생각했다.
이에 우리 팀은 본인이 구현하지 않은 부분에 대해서 테스트를 작성하기로 했다.
아래는 이런 식으로 진행했을 때 얻은 장점이다.
- 다른 팀원이 구현한 부분의 코드를 꼼꼼하게 읽으며 이해도를 높일 수 있다.
- 팀원이 구현한 코드를 리팩토링하고 버그를 찾을 수 있다.