У меня проблема с тестированием 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





Вам нужно вернуть обещание или использовать асинхронную функцию при работе с обещаниями:
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)
});
Также посмотрите документы
Теперь я пытаюсь использовать это изменение в этой строке, тогда она работает it ('GET should return a status of 200 OK', async (done) => {
Не могли бы вы мне помочь, я не знаю, где мой код неправильный, и все равно время ожидания истекает. 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);
лучший способ - в конце концов не использовать done, поскольку он не нужен при работе с функцией async, как описано в моем ответе. Я обновлю код, чтобы было понятнее
Большое спасибо
Привет, Андреас, я все еще получаю эту ошибку, когда использую ваш второй код. Первый блок кода неверен. Пожалуйста, не могли бы вы помочь в этом.