Получил тайм-аут - асинхронный обратный вызов не был вызван в течение тайм-аута 5000 мс, указанного в jest.setTimeout

У меня проблема с тестированием api с помощью jest

Каково текущее поведение?

 Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.
      at ../../../../Users/chhoeurng.sakona/AppData/Roaming/npm/node_modules/jest-cli/node_modules/jest-jasmine2/build/queue_runner.js:68:21

Мой текущий код

it ('GET should return a status of 200 OK', function (done) {
        frisby
            .get('url-api')
            .expect('status', 200)
            .done(done);
    });

Каково текущее поведение?It should work normally and no error.

Укажите точную конфигурацию JestI do not have configuration

Запустите npx envinfo --preset jest в каталоге вашего проекта и вставьте результаты здесь

 System:
    OS: Windows 10
    CPU: x64 Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
  Binaries:
    Node: 8.11.1
    Yarn: Not Found
    npm: 5.6.0
   jest v22.4.3
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
2
0
7 128
1

Ответы 1

Вам нужно вернуть обещание или использовать асинхронную функцию при работе с обещаниями:

it ('GET should return a status of 200 OK', async() => {
        await frisby
            .get('url-api')
            .expect('status', 200)

    });

или же

it ('GET should return a status of 200 OK', function () {
        return frisby
            .get('url-api')
            .expect('status', 200)

    });

Также посмотрите документы

Привет, Андреас, я все еще получаю эту ошибку, когда использую ваш второй код. Первый блок кода неверен. Пожалуйста, не могли бы вы помочь в этом.

Sakuna Chheourng 10.04.2018 10:45

Теперь я пытаюсь использовать это изменение в этой строке, тогда она работает it ('GET should return a status of 200 OK', async (done) => {

Sakuna Chheourng 10.04.2018 10:52

Не могли бы вы мне помочь, я не знаю, где мой код неправильный, и все равно время ожидания истекает. const frisby = require('frisby'); const Joi = frisby.Joi; // Frisby exports Joi for convenience on type assersions it ('Should sakona return a status of 200', function (done) { return frisby .get('url-api') .expect('status', 200) .expect('json', 'status', '3') .expect('jsonTypes', 'merchants*', { // Assert *each* object in 'items' array 'uid': Joi.number().required(), 'category': Joi.string().required(), }) .done(done);

Sakuna Chheourng 11.04.2018 11:33

лучший способ - в конце концов не использовать done, поскольку он не нужен при работе с функцией async, как описано в моем ответе. Я обновлю код, чтобы было понятнее

Andreas Köberle 11.04.2018 11:39

Большое спасибо

Sakuna Chheourng 19.04.2018 09:11

Другие вопросы по теме