[1팀 신희원] Chapter 3-2. 프런트엔드 테스트 코드 🧦#16
Open
Amelia-Shin wants to merge 29 commits intohanghae-plus:mainfrom
Open
[1팀 신희원] Chapter 3-2. 프런트엔드 테스트 코드 🧦#16Amelia-Shin wants to merge 29 commits intohanghae-plus:mainfrom
Amelia-Shin wants to merge 29 commits intohanghae-plus:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
8주차 과제 체크포인트
기본 과제
필수
선택
심화 과제
각 팀원들의 테스트 전략은?
합의된 테스트 전략과 그 이유는 무엇인가요?
합의된 테스트 전략: 테스트 트로피(Trophy Strategy)선택 이유팀에서 테스트 트로피 전략을 선택한 주요 이유들:
1. 애플리케이션 특성에 적합
캘린더 애플리케이션은 일정 생성, 수정, 삭제와 같은 사용자 중심의 기능 플로우가 핵심
복잡한 비즈니스 로직보다는 사용자 시나리오의 원활한 동작이 더 중요
2. 요구사항 변경에 대한 대응력
새로운 일정 추가, 변경, 반복 설정, 삭제 등 요구사항이 지속적으로 변경되는 환경
통합 테스트는 개별 컴포넌트의 변경보다는 전체적인 사용자 플로우의 안정성을 보장
3. 테스트 신뢰성 확보
단위 테스트만으로는 컴포넌트 간 상호작용에서 발생할 수 있는 문제를 놓칠 수 있음
통합 테스트 중심으로 실제 사용자가 경험하는 시나리오를 검증하여 더 높은 신뢰성 확보
테스트 트로피 전략의 구성
통합 테스트 (Integration Tests): 최대 비중 - 사용자 플로우 중심의 E2E 수준 테스트
단위 테스트 (Unit Tests): 중간 비중 - 핵심 로직에 대한 최소한의 테스트
E2E 테스트: 최소 비중 - 주요 사용자 시나리오에 대한 종단간 테스트
추가로 작성된 테스트 코드는 어떤 것들이 있나요?
한아름님 PR에 테스트 코드 작성하였습니다.
#33
1. 종료일을 지정하지 않았을 때 반복 시작일이 10월 30일 이후이면 시작 날짜에 대한 일정 하나만 생성 (hooks)
작성 이유:
경계값 테스트의 중요성: 10월 30일이라는 특정 날짜 기준의 비즈니스 로직을 검증
예외 상황 처리: 반복 일정 생성 시 발생할 수 있는 특수한 케이스 대응
데이터 무결성 보장: 잘못된 반복 일정 생성으로 인한 데이터 오류 방지
2. 반복 생성된 일정들과 이미 존재하는 일정이 겹칠 때 경고 표시 (integration)
작성 이유:
사용자 경험(UX) 개선: 일정 충돌 상황을 사용자에게 명확히 알려 혼란 방지
실제 사용 시나리오 검증: 반복 일정과 기존 일정 간의 상호작용을 통합적으로 테스트
비즈니스 로직 검증: 일정 충돌 감지 및 경고 시스템의 정확한 동작 확인
3. 반복 일정을 추가할 때 반복 유형이 선택되지 않았을 경우 폼 유효성 검사 (integration)
작성 이유:
사용자 입력 검증: 필수 입력값 누락 시 적절한 피드백 제공
오류 방지: 불완전한 데이터로 인한 시스템 오류 사전 차단
사용자 가이드: 올바른 입력 방법을 사용자에게 안내하여 사용성 향상
과제 셀프회고
기술적 성장
새로 학습한 개념
handlers.ts와handlersUtils.ts를 통해 백엔드 없이도 실제와 유사한 API 환경을 구축하여 테스트할 수 있는 방법을 학습했습니다.renderHook,act,waitFor등을 활용하여 비동기 로직과 상태 변화를 안정적으로 테스트하는 방법을 익혔습니다.구현 과정에서의 기술적 도전과 해결
코드 품질
특히 만족스러운 구현
setupMockHandlerCreation,setupMockHandlerUpdating등 테스트 시나리오별 Mock 설정 함수를 구현하여 코드 중복을 제거했습니다.htmlFor속성 추가,aria-label설정 등 웹 접근성을 고려한 코드 개선을 진행했습니다.리팩토링이 필요한 부분
학습 효과 분석
가장 큰 배움이 있었던 부분
fix,test,refactor등의 반복적 개선 과정을 통해 코드 품질이 향상되는 것을 확인했습니다.추가 학습이 필요한 영역
실무 적용 가능성
과제를 통해 얻은 인사이트
과제 피드백
이번에 AI 를 주로 사용했습니다.
커서룰을 추가하여 사용하였습니다.
리뷰 받고 싶은 내용