inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트

4.4. 통합 테스트 작성하기 - 상태 관리 모킹

util 함수, const를 사용하지 않는 이유가 있을까요 ?

294

tumblbug.study

작성한 질문수 1

0

'특정 아이템의 수량이 변경되었을 때 값이 재계산되어 올바르게 업데이트 된다' 테스트 실행시 변경점이 있는 price를 '$4,045.00'과 같이 직접 입력하셨는데요.

 

이 부분을 formatPrice(809*4) 이런식으로 하면 formatPrice에 변경점이 생겼을 때도 테스트가 깨지지 않고 검증할 수 있고, 작성하기 더 쉬워보인다고 생각하는데요. 혹시 그렇게 하지 않은 이유가 따로 있을까요 ? (독립성을 보장한다던가..)

 

아래의 '특정 아이템의 수량이 1000개로 변경될 경우 "최대 999개 까지 가능합니다!"라고 경고 문구가 노출된다' 테스트의 cartValidationMessages.MAX_INPUT_VALUE 값도 마찬가지입니다 !!

javascript react 소프트웨어-테스트 vitest

답변 2

0

tumblbug.study

답변 감사합니다 🙇‍♂

0

코드 조커, 오프

안녕하세요 tumblbug.study님!

개인적으로는 명확하게 검증하고자 하는 값은 스태틱하게 입력하는 편인데요.

이렇게 작성하게 될 경우 명확한 결과값을 예상할 수 있고, 테스트 코드의 가독성이 올라가는 장점이 있습니다.

추가로, formatPrice를 언급해 주셨는데요!

해당 함수의 포맷팅 양식이 변경됨에 따라 깨지지 않고 검증을 할 수 있겠지만, 여기서 만약 formatPrice의 동작을 잘못 구현했다면 테스트 코드에서는 결과값이 잘못되었는지 검증할 수 없습니다. 늘 통과하겠죠.

formatPrice에 대한 독립적인 테스트 코드가 없다면 더더욱 위험한 상황일수도 있겠네요.

결국 이 테스트 코드를 운영하는 비용을 줄이는 것도 좋지만, 이 테스트가 검증하는 함수와 범위가 무엇인지 그리고 그 범위의 코드들이 잘못된 것을 어떻게 하면 민감하게 알아차릴 수 있는지 고민해보면 될 것 같습니다.

상수에 있어서는 그대로 사용할 수 있는 충분한 범위라고 생각하는데, 테스트 코드가 스펙이라고 가정하고 스펙에 맞게 최댓값을 제대로 입력했는지 검증하고자 한다면 스태틱한 값으로 넣는 게 저는 좋을 것 같습니다.

 

추가로 궁금하신 점 있으면 편하게 알려주세요!

mockZustand

0

67

2

프로젝트 세팅 오류 및 버전 오류 문제 문의

0

97

2

toggleIsModalOpened 테스트 할때 궁금한 점이 있습니다.

0

43

2

로딩/에러처리 검증은 어떻게 하는게 좋을까요?

0

65

1

통합 테스트에서 API 요청에 대한 검증은 이루어지지 않아도 괜찮을까요?

0

71

2

lint에러..

0

74

1

단언문 순서에 따라 테스트 결과가 왜 달라지나요?

0

109

2

useNavigate 테스트 시, 검증 대상 질문입니다.

0

113

2

강의 예시프로젝트 업데이트좀 부탁드립니다.

2

166

2

통합테스트와 단위테스트 파일 분리

0

109

1

grid 양옆에 margin은 어디서 설정되어있는건가요 ?

0

131

1

vitest 설치했는데

0

207

2

2부 할인쿠폰 관련

0

177

1

에러 해결 방법

0

407

2

직접 구현한 atom 컴포넌트 테스트 범위 질문

0

175

1

setup, teardown 동작 순서

0

212

1

debounce 함수 테스트 정확도 관련 질문입니다.

0

177

2

ProductFilter test 어떤 방식이 더 선호되는 방식일까요?

0

204

2

통합 테스트 작성 방식에 대해 궁금한 점이 있습니다

0

259

2

vitest Extension 알려주세요.

0

268

1

2.1 강의 질문있습니다.

0

140

1

useNavigate()을 검증할 때 이해가 안되는 부분이 있습니다.

0

248

2

toHaveStyle 메서드 사용이 조금 이상한 것 같습니다.

0

196

2

TestPayment에 쿠폰 정보를 prop으로 전달하는 이유

0

186

2