인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Dongwook Kim님의 프로필 이미지
Dongwook Kim

작성한 질문수

따라하며 배우는 리액트 테스트 [2023.11 업데이트]

주문 완료 페이지 (1)

queryByTest("loading") vs getByTest(/loading/i)

작성

·

261

0

안녕하세요

 

주문 완료 페이지 테스트 코드 작성중입니다.

여기서 처음 로딩 문구를 가져올 땐 getByText(/loading/i) 사용했고, 

두번째 로딩 사라질 땐 queryByText("loading")을 사용했습니다.

 

1. 두번째에서 queryBy를 사용한 이유가 있을까요? 주문이 성공한 뒤 사라질 엘리먼트이기 때문에 사용한 것인가요? 로딩 문구가 (this is useful for asserting an element that is not present) 에 해당하기 때문인가요? 이런 경우 getByText로 하면 무조건 없다고 나오는건가요?

2. 강의 중 어떤 것은 getByText("총 가격", { exact: false })를 쓰고, 로딩 같은 경우 getByText(/loading/i), 즉 정규식을 사용했습니다. 혹시 로딩에서 정규식을 사용하고 다른데선 그냥 스트링으로 썼던 이유가 있는지요? 정규식 아님 스트링 을 사용할 때의 기준이 있는지요?

 

감사합니다.

 

 

 

 

답변 1

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 

1. getBy와 queryBy의 차이점은 getBy는 일치하는 요소가 없으면 오류를 발생시키고 queryBy는 일치하는 요소가 없으면 null을 반환하는 특징 때문에 가져올 때와 사라질 때를 다르게 해 줬습니다. 

 

2. loading 같은 경우는 영어 스펠링이기 때문에 대문자로 쓸 수도 있고 소문자로 쓸 수도 있기 때문에 i라는 정규식을 이용해서 사용했지만 한글은 그럴 필요가 없기 때문에 정규식을 사용하지 않았습니다. 

감사합니다.

Dongwook Kim님의 프로필 이미지
Dongwook Kim

작성한 질문수

질문하기