강의 내용
TDD 이해
- TDD = TFD(Test First Development) + 리팩터링 → 지속적으로 설계를 수정하고 리팩터링을 진행해야 함
- TDD 는 단순한 테스트 기술이 아닌 분석하고 설계하는 기술이다.
- 대략적으로 객체 설계를 진행 후 TDD 시작
- 생성자에 대한 테스트를 할 필요가 있을까? 고민해보기
- 재귀함수 테스트 → 터미네이트 되는 시점에 테스트?
- 테스트 코드를 작성하기 어려울 경우 객체 설계가 제대로 되었는지 확인하기
- 커밋 당시에는 컴파일 에러가 발생하지 않은 경우에 할 것 → 롤백 시 컴파일 에러가 발생할 수 있음
- 테스트 코드 작성 시 도메인 등 객체 순서는 본인이 알아서~
- 복잡도가 높아져 리팩터링 하기 힘든 구조가 되면 처음부터 다시 해도 된다.
- 요구사항 작성 시 테스트 단위로 작성하면 테스트 코드 작성 시 편리함
- 뷰에 대한 요구사항은 마지막에 뷰를 추가하면 객체지향에 더 가까운 설계를 할 수 있음
- TDD 순서
- 도메인 테스트 먼저!
- 요구사항 분석을 통해 객체 설계
TDD 실습
학습 내용
- @Disabled
- (내가 생각하는) TDD 장점
- 코드 작성 시 하나의 기능에만 신경쓰면 되기 때문에 길을 잃을 가능성이 줄어든다.
- 오류가 발생해을 때 어떤 상황에서(어떤 테스트에서) 오류가 발생했는지 쉽게 알아낼 수 있다. (특히 입력 테스트)
- 랜덤값 추출 : ThreadLocalRandom.current().nextInt(10)