아아아아
사용자가 버튼을 클릭하는 테스트를 작성했습니다. 버튼은 네트워크 요청을 보내고 200이 반환되면 타이머가 표시되고 초 단위로 계산이 시작됩니다. 모의 응답을 반환하기 위해 MSW를 사용하고 있습니다. 네트워크 요청은 분명히 비동기식이므로 screen.findByRole이 호출될 때까지 기다려 이 타이머를 검색합니다. 내가 겪고 있는 문제는 userEvent.click(startTimerButton)
和调用await screen.findByRole('cell', {name: /00:00/i})
之间调用await waitFor(() => {})
이 호출될 때만 테스트가 통과된다는 것입니다. 이 테스트는 타이머를 검색하기 전에 잠시 잠자기 상태로 두어야만 통과하는 것 같습니다. 검색 타이머를 즉시 시작할 수 없는 이유를 모르겠습니다.
waitFor 문이 없으면 나타나는 오류 메시지는 다음과 같습니다.
오류: 오류: "테스트 시간 초과가 5000ms를 초과했습니다. 장기간 실행되는 테스트인 경우 jest.setTimeout(newTimeout)을 사용하여 시간 초과 값을 늘립니다. " var evt = document.createEvent('event'); TypeError: null의 'createEvent' 속성을 읽을 수 없습니다
이유 아시는 분 계신가요? 지금처럼 그런 일을 겪지 않았으면 좋겠어요.
또한 findBy 대기를 waitFor 문 안에 포함된 getBy로 변경하려고 시도했지만 그 역시 작동하지 않았습니다. 잠시 잠자기 상태로 두고 검색을 시작하면 될 것 같습니다.
이 줄에서 누락된 내용
으아악await
:한번 시도해 보세요:
으아악버전 14부터
userEvent
API는 비동기식입니다.