React Jest, как проверить внешнюю асин c функцию вызова? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть компонент реагирования и событие onClick. Когда я запускаю событие, я вызываю функцию asyn c из другого файла / модуля, как я могу проверить, что этот метод вызывается с помощью Jest, так как этот метод не проходит через проп, но из внешнего ресурса, например

import {someAsyncFn} from '../../../externalFile';
--My component on click method
const onClick = async (userId) => {
    await someAsyncFn(userId);
};

Я пытался использовать jest.fn или jest.spy в моем тесте, но это не сработало ..

import * as externalMod from '../../../externalFile';
it('someAsyncFn should called', async() => {
   const spy = spy(externalMod, 'someAsyncFn');
   ...simulate('click');
   await expect(spy).toHaveBeenCalled();
})

1 Ответ

1 голос
/ 02 мая 2020

Вы можете сделать это с помощью jest.mock:

import {someAsyncFn} from '../../../externalFile';

jest.mock('../../../externalFile');

it('someAsyncFn should called', async() => {
   someAsyncFn.mockResolvedValue(someDataToMock);
   ...simulate('click');
   expect(someAsyncFn).toHaveBeenCalled();
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...