inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2.4. React Testing Library와 컴포넌트 테스트

2.4장 마지막 border 스타일 검증 시 질문

해결된 질문

513

leo.kang

작성한 질문수 2

5

강의의 예시와 같이

expect(textInput).toHaveStyle({
  borderWidth: 2,
  borderColor: rgb(25, 118, 210)
})

으로 할 경우 정상적으로 test passed가 되긴 하는데,

expect(textInput).toHaveStyle({
  borderWidth: 1,
  borderColor: rgb(25, 118, 210)
})

처럼 변경할 경우에도 test passed가 되네요.

 

testing-library/jest-dom#toHaveStyle 이나 비슷한 다른 이슈를 좀 확인해보니, 예시처럼이 아닌

expect(textInput).toHaveStyle({
  borderWidth: '1px',
  borderColor: rgb(25, 118, 210)
})

처럼 세팅해야 예상한대로 fail이 되는 것 같습니다.

 

그래서 border style을 검증하는 쪽 테스트 코드의 expect 부분도

expect(textInput).toHaveStyle({
  borderWidth: '2px',
  borderColor: rgb(25, 118, 210)
})

로 수정이 되어야 하지 않을까.. 조심스레 제안드려봅니다 ㅎ

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

답변 1

0

코드 조커, 오프

안녕하세요!

우선 말씀하신 부분이 정확히 맞습니다.

https://github.com/testing-library/jest-dom/blob/main/src/to-have-style.js

결국 toHaveStyle 자체가 getComputedStyle와 style객체값을 가지고 와 비교하기 때문에 borderWidth의 반환값인 문자열 형태로 비교가 되어야 올바른 비교가 가능합니다.

해당 부분은
https://github.com/practical-fe-testing/test-example-shopping-mall/commit/dd27750e0805c9a7a09ead7b0a8d185e40cec638
위 브랜치에서 수정이 되었으며, 강의 노트에도 기록해 둘 예정입니다.

덕분에 많은 분들이 혼란을 겪지 않으실 수 있을 것 같습니다. 제보 감사합니다. 😃

3

leo.kang

넵 링크주신 부분에서 확인했습니다, 답변 감사합니다!

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