Тестирование обещания с использованием setTimeout с помощью JestJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Тестирование обещания с использованием setTimeout с помощью Jest

Сообщение Гость »


Я пытаюсь понять асинхронное тестирование Jest.

В моем модуле есть функция, которая принимает логическое значение и возвращает обещание значения. Функция-исполнитель вызывает setTimeout, и в обратном вызове с истекшим временем ожидания обещание разрешается или отклоняется в зависимости от первоначально заданного логического значения. Код выглядит следующим образом:

const withPromises = (проходит) => новое обещание((разрешить, отклонить) => { const act = () => { console.log(`в обратном вызове таймаута передано ${passes}`) если(проходит) разрешить('что-то') иначе отклонить (новая ошибка («ничего»)) } console.log('в определении обещания') setTimeout (действие, 50) }) экспортировать по умолчанию {withPromises} Я хотел бы проверить это с помощью Jest. Я предполагаю, что мне нужно использовать фиктивные таймеры, предоставляемые Jest, поэтому мой тестовый сценарий выглядит примерно так:

import { withPromises } из './request_something' jest.useFakeTimers() описать('используя обещание и фиктивные таймеры', () => { afterAll(() => { jest.runAllTimers() }) test('получает значение, если условия благоприятствуют', () => { ожидать.утверждения(1) вернуться с обещаниями (правда) .then(решено => { ожидать(разрешено).toBe('что-то') }) }) }) Я получаю следующую ошибку/неудачный тест независимо от того, вызываю ли я jest.runAllTimers()

Тайм-аут — асинхронный обратный вызов не был вызван в течение времени ожидания, указанного в jasmine.DEFAULT_TIMEOUT_INTERVAL. Можете ли вы объяснить, в чем я ошибаюсь и что мне следует сделать, чтобы пройти тест и обещание выполнилось так, как ожидалось?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»