테스트 코드를 작성하다보면 원 코드의 나쁜 냄새를 맡게해주는 경우가 많다.
테스트를 하면 SOLID가 지켜진다.
- S: 테스트가 너무 많아진다? → 이게 무슨 목적의 클래스지.. 눈에 안들어오는 지점이 생기고 이는 클래스를 분할해야하는 시점임을 알려준다! → 책임이 분배되고 단일 책임 원칙을 지키게 된다.
나쁜 신호
1. 의존성이 숨겨진 경우
2. Testability가 낮은 경우
- 얼마나 쉽게 input을 변경 가능하고, output을 쉽게 검증할 수 있는가를 보자.
3. private method를 테스트해야하는가?
- NO!
- private method를 테스트하고 싶은 경우라면 private method가 아니어야하던지 다른 클래스로 분리/위임 하라는 신호이다!