Встречается на собеседованиях • сегодня

Как работать с асинхронными функциями при тестировании

Для тестирования асинхронного кода в Python используйте pytest-asyncio или встроенный unittest.IsolatedAsyncioTestCase. Основные подходы:

  1. Используйте async/await в тестах:
python
import pytest

@pytest.mark.asyncio
async def test_async_func():
    result = await some_async_function()
    assert result == expected_value
  1. Для моков асинхронных функций используйте unittest.mock.AsyncMock:
python
from unittest.mock import AsyncMock

async def test_with_mock():
    mock = AsyncMock(return_value=42)
    result = await mock()
    assert result == 42
  1. Для тестирования событийных цикл используйте asyncio.run() или создавайте новую loop для каждого теста.

Ключевые моменты:

  • Всегда помечайте асинхронные тесты соответствующим декоратором
  • Используйте специальные асинхронные моки
  • Избегайте смешивания синхронного и асинхронного кода в тестах
  • Для фикстур используйте @pytest_asyncio.fixture
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы