Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- wil
- 테스트 코드
- FE
- 회고
- 분기 회고
- 항해플러스
- 알고리즘
- javascript
- 항해99
- 성장일지
- 개발 공부
- 개발자
- rust
- 개발공부
- 보안
- GPU
- 항해 플러스 프론트엔드
- 항해
- 자바스크립트
- React
- frontend
- 성능최적화
- naver
- React Query
- 프론트엔드
- typescript
- 리뷰
- 항해 플러스
- 백준
- webGPU
Archives
- Today
- Total
느릿늘있
[ Vitest ] 테스트 코드 개선 경험 기록 본문
1. 문제 코드
it('검색어에 맞는 이벤트만 필터링해야 한다', async () => {
const { result: searchResult } = renderHook(() => useSearch(events, new Date(), 'month'));
const { filteredEvents, setSearchTerm } = result.current;
act(() => {
searchResult.current.setSearchTerm('헬스장');
});
filteredEvents.forEach((event: Event) => {
const searchTargets: EventKeys[] = ['title', 'description', 'location'];
const isFiltered = searchTargets.some((target: EventKeys) => event[target] === '헬스장');
expect(isFiltered).toBeTruthy();
});
});
- 문제점 1 : result의 current를 구조분해할당 하면서 act 이후의 filteredEvents가 변경되지 않은 값으로 테스트하고 있음
- 문제점 2 : expect를 forEach문 안에서 실행함으로써 테스트 동작이 많아지고 예측이 어려워지고 있음
2. 해결 코드
it('검색어에 맞는 이벤트만 필터링해야 한다', async () => {
const { result: searchResult } = renderHook(() => useSearch(events, new Date(), 'month'));
const { setSearchTerm } = result.current;
act(() => {
searchResult.current.setSearchTerm('헬스장');
});
const { filteredEvents } = result.current; // act 이후 바뀐 current에서 조회
const result = filteredEvents.every((event: Event) => {
const searchTargets: EventKeys[] = ['title', 'description', 'location'];
const isFiltered = searchTargets.some((target: EventKeys) => event[target] === '헬스장');
return isFiltered;
});
expect(result).toBeTruthy(); // Array.every로 전체가 참인지 한번만 체크
});
- 해결 1 : act 이후 변경된 current로 이후 검증 진행
- 해결 2 : Array.every 매서드로 테스트 결과 한 번만 체크
'삽질로그' 카테고리의 다른 글
클로저를 활용한 grid rowid 구현 (0) | 2024.10.12 |
---|---|
[JS] 배열 탐색 : forEach, filter, find (0) | 2023.11.29 |
[개발 환경] WSL2 UNC 경로 에러 (0) | 2023.07.25 |
[SQL] 쿼리문 변경을 통한 성능 향상 경험 (0) | 2023.06.13 |
[nextJS] Google Map API 성능 최적화 경험 기록 (0) | 2023.05.07 |