FrontEngineer JungBam
getby? findby? queryby? 본문
이 부분에 대해서 공식문서 내용을 확인해보자.
공식문서 내용 ::
- 단일 요소
- getBy...: 쿼리에 대해 일치하는 노드를 반환하고 일치하는 요소가 없거나 둘 이상의 일치가 발견되면 설명 오류를 발생시킵니다 ( getAllBy둘 이상의 요소가 예상되는 경우 대신 사용).
- queryBy...: 쿼리에 대해 일치하는 노드를 반환하고 null일치하는 요소가 없으면 반환합니다. 이는 존재하지 않는 요소를 어설션하는 데 유용합니다. 둘 이상의 일치 항목이 발견되면 오류가 발생합니다( queryAllBy정상인 경우 대신 사용).
- findBy...: 지정된 쿼리와 일치하는 요소가 발견되면 해결되는 Promise를 반환합니다. 요소가 발견되지 않거나 기본 시간 제한 1000ms 후에 둘 이상의 요소가 발견되면 약속이 거부됩니다. 둘 이상의 요소를 찾아야 하는 경우 를 사용하십시오 findAllBy.
- 다중 요소
- getAllBy...: 쿼리에 대해 일치하는 모든 노드의 배열을 반환하고 일치하는 요소가 없으면 오류를 발생시킵니다.
- queryAllBy...: 쿼리에 대해 일치하는 모든 노드의 배열을 반환하고 []일치하는 요소가 없으면 빈 배열( )을 반환합니다.
- findAllBy...: 지정된 쿼리와 일치하는 요소가 발견되면 요소 배열로 해석되는 약속을 반환합니다. ms 의 기본 시간 초과 후 요소가 발견되지 않으면 약속이 거부됩니다 1000.
- findBygetBy*메서드는 쿼리와 의 조합입니다 waitFor. waitFor옵션을 마지막 인수로 허용합니다 (예: await screen.findByText('text', queryOptions, waitForOptions))
1. getBy와 queryBy의 가장 큰 차이점은 반환값이 어떤 것이냐에 대한 것이다. 일치하는 값이 없다면 getBy는 에러를 발생시키지만 queryBy는 null을 반환하기 때문에 없는 요소에 대한 테스트를 에러없이 확인할 수 있다.
2. findBy는 반환값이 Promise이기 때문에 async/await을 처리해줘야 한다는 점이 다른 쿼리들과는 다르다.
※ 비동기에 대해서는 쿼리 옵션으로 원하는 옵션안에서의 테스트가 가능하다.
반응형
'jest' 카테고리의 다른 글
next.js에서 jest 설정하기 (0) | 2023.07.19 |
---|---|
jest의 mocking :: jest.Fn()과 jest.spyOn() (0) | 2023.07.05 |
테스트 코드를 작성하기 전 정리해야 할 것들 (0) | 2023.07.04 |
act(...) 경고에 대하여.. (0) | 2023.06.28 |
userEvent에 대해서 좀 더 알아보기 (0) | 2023.06.22 |
Comments