> [!date] published: 2025-06-01 ## `fireEvent` [Firing Events \| Testing Library](https://testing-library.com/docs/dom-testing-library/api-events/#fireevent) > [!tip] > 대부분의 경우에는 [[#userEvent]] 를 사용하는 것이 권장된다. DOM 이벤트를 쉽게 발생시키기 위한 내장 유틸리티 아래처럼 사용할 수 있다. ```ts fireEvent.change(input, { target: { value: "2020-05-24" } }); fireEvent.keyDown(domNode, { key: "A", code: "KeyA" }); ``` ## `fireEvent` vs `user-event` [Differences from fireEvent](https://testing-library.com/docs/user-event/intro/#differences-from-fireevent) | | `fireEvent` | `user-event` | | ----------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------- | | **실행 방식** | 동기적 실행 | 비동기적 실행 | | **이벤트 시퀀스** | 하나의 이벤트만 실행(예: 값 변경 이벤트만) | 사용자 인터렉션과 연결된 이벤트를 순차적으로 실행<br/>(예: click -> focus -> keydown -> change) | ## `user-event` [User Interactions](https://testing-library.com/docs/user-event/intro/#) 유저 인터랙션을 시뮬레이션하는 라이브러리 (추가로 설치해야 한다.) ```ts import userEvent from "@testing-library/user-event"; test("trigger some awesome feature when clicking the button", async () => { const user = userEvent.setup(); render(<MyComponent />); await user.click(screen.getByRole("button", { name: /click me!/i })); // ...assertions... }); ``` ### `userEvent.setup()` - [`userEvent.setup()` \| Testing Library](https://testing-library.com/docs/user-event/setup) ## 관련 문서 - [[React Testing Library 쿼리와 우선순위]]