tdd 관련 포스팅
단위 테스트 작성 시 고민 해 봐야 할 사항
TDD를 처음 접하게 되며 가장 어려웠던 점이 도대체 어떤 부분에서 단위테스트를 추가해야 하는 것인지이다.
아직도 익숙하지는 않지만 처음 익숙해 지는 단계에서는 (아직도 크게 달라지지는 않았지만)
단위테스트 -> 구현 -> 리펙토링
의 단계보다도 구현 -> 단위테스트 -> 리펙토링
의 단계가 훨씬 많았다.
단위테스트를 작성할 때에는
- 기능 요구사항을 상세하게 나눈다.
- 요구사항을 그대로 테스트 메서드로 작성한다.
- 어떠한 값으로 메서드를 호출했을 때의 결과값 = 예상한 결과값 인지 확인한다.
의 단계로 진행한다.
단위테스트의 역할에 대해 고민하면서 작성하면 도움이 된다.
- 테스트 코드만으로 동료가 서비스의 요구사항을 이해할 수 있는가?
- 클라이언트가 어떠한 방식으로 객체를 사용할 수 있는지에 대한 적절한 예제가 되는가?
요구사항을 작성하는 경우 여러가지 개념이 한 문장에 정리가 되는 경우가 있는데, 일반적으로는 하나의 논리적인 개념과 하나의 테스트가 1 대 1 매칭이 되도록 하는 것이 좋다. 이 부분에 대해서 참고 할 만한 글이 있어 첨부한다.