[250512] TDD 사고력 훈련 - 3단계 협력 구조에서의 책임 분리와 테스트 설계

트라이캐치·2025년 5월 12일

출퇴근미니스터디

목록 보기
21/23
post-thumbnail


1. 오늘의 주제 정리

  • 하나의 기능이 아닌, 여러 도메인 간 연결을 다루기 시작
  • 게시물 → 댓글 → 신고 흐름을 행위 책임 기반으로 설계
  • TDD 관점에서 각각의 도메인에 대해 테스트 단위를 어떻게 나눌지 설계
  • 테스트도 설계 대상이며, 중복 제거와 의미 명시가 중요

2. 도메인 간 책임 분리

관계방식이유
게시물 → 댓글PostService가 직접 삭제강한 소유 관계, 한 트랜잭션 내 처리
댓글 → 신고이벤트 발행 후 삭제 위임약한 연결, 독립적 관리 필요

3. 도메인별 테스트 설계 요약

PostServiceTest

  • 게시물 삭제 시 댓글도 삭제되는지 검증

CommentServiceTest

  • 댓글 삭제 시 DB 삭제 + 이벤트 발행 여부 각각 별도 검증

ReportServiceTest

  • 댓글 삭제 이벤트 수신 시 신고 내역 삭제되는지 확인

4. 테스트 구조화 사고 훈련

  • 중복되는 요청/객체는 Fixture 클래스로 관리
  • 그러나, 의도(예외 케이스)가 다를 경우엔 중복도 허용 → 명확한 테스트 목적 우선
  • 테스트도 DRY 적용 대상이지만, 의미 흐림은 피해야 함

5. 오늘 나의 한 줄 정리

테스트도 설계 대상이다. 의미가 분명하다면 중복을 감수하더라도 명확하게 나눈다.

0개의 댓글