Как можно корректно протестировать выполнение метода и события с помощью Jest?

Какой метод можно использовать для проверки вызова функции `handleApprove` после нажатия кнопки в компоненте? Вот мой код для тестирования: <br/> <pre><code>...
  it ('Срабатывает', async () =&gt; {
    const approveBtn = wrapper.find('[data-test="approveBtn"]')
    expect(approveBtn.exists()).toBe(true)
    await approveBtn.trigger('click')
    expect(wrapper.emitted('ok')).toBeTruthy()
    expect(wrapper.emitted()).toHaveProperty('ok')
  })
...</code></pre>
  • 10 апреля 2024 г. 11:00
Ответы на вопрос 1
Для проверки вызова функции `handleApprove` после нажатия кнопки в компоненте с использованием Jest можно использовать следующий подход:

1. Создайте мок функцию для метода `handleApprove`.
2. Мок функцию передайте в компонент как свойство.
3. После нажатия кнопки проверьте, была ли вызвана мок функция.

Пример кода для тестирования:

```javascript
it('Вызов метода handleApprove после нажатия кнопки', async () => {
  const handleApproveMock = jest.fn();
  const wrapper = shallowMount(Component, {
    propsData: {
      handleApprove: handleApproveMock
    }
  });

  const approveBtn = wrapper.find('[data-test="approveBtn"]');
  expect(approveBtn.exists()).toBe(true);

  await approveBtn.trigger('click');

  expect(handleApproveMock).toHaveBeenCalled();
});
``` 

В данном примере создается мок функция `handleApproveMock`, которая заменяет реальный метод `handleApprove`. Затем мок функция передается компоненту как свойство `handleApprove`. После нажатия на кнопку проверяется, была ли вызвана мок функция с помощью метода `toHaveBeenCalled()`.

Таким образом, вы можете проверить корректность выполнения метода после определенного события в компоненте.
Похожие вопросы