Тестирование простого GET-запроса с использованием Axios и Jest - PullRequest
0 голосов
/ 07 мая 2018

Я использую axios 0.18.0, jest 22.4.2 и пытаюсь протестировать простой запрос с использованием Axios и Jest на основе примера документации Axios и Документация Jest Async / Await

// services.js
import axios from 'axios';

export const getUser = () => axios.get('https://api.github.com/users/mzabriskie');


// services.spec.js
import { getUser } from './services';

it('should return data from github user', async () => {
  jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
  const result = await getUser();
  console.log('RESULT -->', result);
});

После прохождения DEFAULT_TIMEOUT_INTERVAL (в этом примере 30 секунд) тест выдает следующее сообщение об ошибке:

Error: Timeout - Async callback was not invoked within timeout 
specified by jasmine.DEFAULT_TIMEOUT_INTERVAL

Ионо никогда не достигает оператора console.log.

Есть идеи, чего мне здесь не хватает или как это отладить?

1 Ответ

0 голосов
/ 08 мая 2018

Таким образом, выясняется, что проблема заключалась в использовании зависимости jest-mock-axios , которая, как кажется, после настройки никогда не позволяет HTTP-запросам проходить в тестах, даже если вы их не используете в конкретном тесте (как в оригинальном примере вопроса).

Таким образом, чтобы исправить это, все связанные запросы должны иметь определенные макеты, чтобы работать (или полностью удалить зависимость jest-mock-axios , если вы хотите тестировать реальные запросы API).

...