Имитация вызовов внешних API в тестах Jest позволяет вам тестировать код, который зависит от данных из внешних источников, без необходимости делать реальные запросы. Это делает ваши тесты детерминированными и независимыми от внешних зависимостей. Вот пошаговое руководство, как это сделать:

1. Определите внешние вызовы API:

Определите, какие вызовы API выполняет ваш код, который нужно имитировать.

2. Создайте имитацию внешнего API:

Используйте jest.fn() для создания имитации функции, которая будет возвращать поддельные данные.

// Пример имитации внешнего API
const mockGetData = jest.fn(() => {
  return {
    data: {
      id: 1,
      name: 'John Doe',
      email: 'johndoe@example.com',
    },
  };
});

3. Используйте jest.mock() для замены оригинальной реализации:

Используйте jest.mock() для замены оригинальной реализации внешнего API на имитацию.

// Пример имитации внешнего API
jest.mock('./api', () => ({
  getData: mockGetData,
}));

В этом примере функция getData из модуля ./api заменяется фиктивной функцией mockGetData.

4. Напишите тестовый код:

Напишите тестовый код, который должен вызывать код, выполняющий внешний вызов API. Затем вы можете проверить, что код работает правильно, на основе фиктивных данных, возвращаемых имитацией.

// Пример тестового случая для кода, который выполняет внешний вызов API
test('should return the correct user data', async () => {
  const result = await getUserData();
  expect(result).toEqual({
    id: 1,
    name: 'John Doe',
    email: 'johndoe@example.com',
  });
});

В этом примере тестируется функция getUserData(), которая выполняет внешний вызов API для функции getData(). Тест проверяет, что функция корректно возвращает ожидаемые данные на основе поддельных данных, возвращаемых фиктивной реализацией.


Назад