Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: async testing, promises, async/await, jest, mocha

Как тестировать асинхронный код?

Вопрос проверяет понимание подходов к тестированию асинхронных операций, таких как промисы, колбэки и async/await, что необходимо для обеспечения корректной работы кода с неблокирующими операциями.

Короткий ответ

Для тестирования асинхронного кода используются специальные механизмы, такие как возврат промиса из теста или использование async/await. В Jest можно передать done-колбэк или использовать resolves/rejects. Важно дождаться завершения асинхронной операции, чтобы избежать ложных результатов.

Длинный ответ

Основы тестирования асинхронного кода

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

Методы тестирования

  • Callback с done: В Jest и Mocha можно передать функцию done, которая вызывается после завершения асинхронной операции.
  • Возврат промиса: Тест может возвращать промис, и фреймворк дождется его разрешения.
  • Async/await: Использование async/await делает тесты более читаемыми и удобными.

Примеры кода

// Пример с async/await в Jest
const fetchData = async () => {
  return 'data';
};

test('async test with async/await', async () => {
  const data = await fetchData();
  expect(data).toBe('data');
});

// Пример с возвратом промиса
test('async test with promise', () => {
  return fetchData().then(data => {
    expect(data).toBe('data');
  });
});

// Пример с done-колбэком
test('async test with done', (done) => {
  fetchData().then(data => {
    expect(data).toBe('data');
    done();
  });
});

Вывод

Тестирование асинхронного кода необходимо для проверки корректности работы с промисами, колбэками и async/await. Используйте async/await или возврат промиса для чистоты и надежности тестов, особенно в современных проектах на JavaScript.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • Testing

Ключевые слова

#async testing

#promises

#async/await

#jest

#mocha

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.