오늘 한일

ATDD: Q&A 1단계 구현

개인사정으로 학원 수업에는 참여하지 못했지만, 학습문서가 잘 만들어져 있어서 수업을 따라갈 수 있었다.

ATDD: TDD의 단점을 보완하기 위해 인수 테스트(acceptance test)를 먼저 구현하고 단위 테스트를 통해 기능을 완성해 나가면서 애플리케이션을 개발

  • TDD 프로세스 유지
    • ATDD
      • 각 기능을 인수 테스트로 시작
      • 코딩을 시작하기 전에 테스트를 작성하면 달성하고자 하는 바가 명확해짐
      • 테스트를 작성하면 사용자 관점에서 시스템을 바라보게 되어 사용자의 요구를 이해가능
    • 가장 간단한 성공 케이스로 시작
    • 입력 -> 출력 순서로 개발
      • Ex) Controller => Service => Repository
  • 인수 테스트
    • 전체 시스템이 동작하는가?
    • 시스템 내부 코드를 가능한 한 직접 호출하지 말고 시스템 전 구간을 테스트해야 한다
    • 기능 테스트, 고객 테스트, 시스템 테스트와 같은 용어로도 사용됨
  • 통합 테스트
    • 변경할 수 없는 코드를 대상으로 코드가 동작하는가?
      • 서드파티 라이브러리 테스트
      • 외부 API에 의존하는 테스트
  • 단위 테스트
    • 객체가 제대로 동작하는가?
  • ATDD 기반 로그인 기능
    • 로그인 성공에 대한 인수 테스트 작성
    • LoginController -> UserService 구현
    • 사용자 데이터 처리를 위한 User Entity, UserRepository 구현
    • 로그인 로직에 단위 테스트 추가해 로직 완료
    • 로그인 실패에 대한 인수 테스트 작성

오늘 느낀점

테스트도 종류가 많구나...

내일 할일

  • 로또 4단계 피드백 요청
  • 사다리 1단계 피드백 반영
  • 플러터 1/4/7/14 앱 기능 설계