예 : 전파 방지 왜 이것이 작동 하는가 :
부모 's
테스트
(이벤트 전파)의 효과를 테스트합니다
stopPropagation()
를 올바르게 구현하는 것은 필수적입니다. 의 호출을 직접 확인하는 대신 결과 테스트에 중점을 둡니다. 이벤트가 전파 되는가?
이 기사는 두 가지 접근법을 비교합니다
stopPropagation()
stopPropagation()
stopPropagation()
handler ()는 청취자 역할을합니다.
stopPropagation()
성공적인 이벤트 예방을 확인합니다
또는 이벤트를 조롱하고 함수 호출을 추적하여
의 호출을 직접 확인할 수 있습니다. 예 : 조롱
stopPropagation()
왜 이것이 작동 하는가 :
<div>
onClick
함수 호출을 모니터링합니다
의 실행을 보장합니다
에 확인하는 데 절대적으로 필요한 경우에만 조롱을 사용하십시오.
방법
프로
단점
테스트 이벤트 전파
실제 사용자 행동을 테스트합니다
는 호출 를 직접 확인하지 않습니다
테이블>
조롱
는 호출 를 직접 확인합니다
행동 가 아닌 구현을 테스트합니다
<code class="language-javascript">import { render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { FormElementsList } from "@/components/FormElementsList";
it("prevents event propagation on click", async () => {
const onOuterClick = jest.fn();
render(
<div onClick={onOuterClick}>
<FormElementsList />
</div>
);
const textInputElement = screen.getByText("Text Input");
await userEvent.click(textInputElement);
expect(onOuterClick).toHaveBeenCalledTimes(0); // Event propagation prevented
});</code>
위 내용은 React Testing Library에서 stoppropagation ()을 테스트하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!