Имитация настраиваемого события - PullRequest
0 голосов
/ 16 июня 2020

Часть простого компонента React:

const doIt=()=>{
    window.dispatchEvent(new CustomEvent('info', {detail: [1,2,3]}));
};
return (
    <button onClick={doIt}>Hello</button>
)

Вышеуказанное настраиваемое событие прослушивается другим компонентом, находящимся далеко в дереве, и вызывает обратный вызов. Я хочу написать тест о кнопке «Привет» без участия слушателя. Как мне поиздеваться над событием?

1 Ответ

1 голос
/ 16 июня 2020

Я бы посоветовал использовать шутку, чтобы шпионить за window.dispatchEvent. вы можете сделать это так:

const mockDispatchEvent = jest.spyOn(window, 'dispatchEvent');

Затем вы можете делать утверждения на макете, как обычно, с помощью jest:

expect(mockDispatchEvent).toHaveBeenCalledWith(...);

или:

expect(mockDispatchEvent).toMatchSnapshot(...);

Очевидно, это не проверяет, действительно ли событие генерируется, но вы можете быть уверены, что window.dispatchEvent выполняет свою работу правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...