fireEvent.click(event)
보다 userEvent.click(element)
를 사용하는 것이 더 좋은 방법이다.
userEvent를 사용하는 테스트를 실행할 때 “not wrapped in act(…)” 오류가 많이 나타난다.
@testing-library/dom v9.0.0
및 @testing-library/react v14.0.0
이 23년 2월 16일에 릴리즈되었다. creat-react-app
으로 @testing-library/react
및 @testing-library/user-event
버전이 설치되고, 결과적으로 @testing-library/dom 버전과 충돌을 일으킨다.
npm install @testing-library/react@14 @testing-library/user-event@14 @testing-library/dom@9
커맨드를 입력해 설치
setup
메서드를 실행하여 user
인스턴스를 생성한다.userEvent
는 Promise를 반환하기 때문에 반드시 async/await
이 있어야한다.test("userEvent test", async () => {
render(<App />);
const user = userEvent.setup();
const testButton = screen.getByRole("button", { name: /test button/i });
await user.click(testButton)
expect(...)
});