«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как имитировать модуль запросов Python для реалистичного взаимодействия с API?

Как имитировать модуль запросов Python для реалистичного взаимодействия с API?

Опубликовано 19 ноября 2024 г.
Просматривать:822

How to Mock Python\'s Requests Module for Realistic API Interactions?

Модуль Mocking Pythons Requests для моделирования взаимодействий API

В нашем стремлении всесторонне протестировать код Python, который взаимодействует с API, эффективно имитируя модуль Requests имеет решающее значение. Вот пошаговый подход к имитированию вызовов Request.get() с настраиваемыми ответами:

Шаг 1. Имитация модуля Requests

Использование мокап-пакета Python, мы определяем нашу пользовательскую функцию (mocked_requests_get), чтобы переопределить request.get(). Эта функция возвращает ложные ответы на основе предоставленного URL-адреса. В нашем примере разные URL-адреса получат определенные ответы:

def mocked_requests_get(*args, **kwargs):
    if args[0] == 'aurl':
        return 'a response'
    elif args[0] == 'burl':
        return 'b response'
    elif args[0] == 'curl':
        return 'c response'

Шаг 2. Издевательство в тестовом классе

В нашем тестовом классе мы применяем макет к модулю запросов с помощью unittest.mock.patch ():

@mock.patch('requests.get', side_effect=mocked_requests_get)

Этот декоратор оборачивает наш тестовый метод, гарантируя, что request.get будет имитирован нашей пользовательской функцией.

Шаг 3. Вызов представления и проверка ответов

Мы вызываем функцию просмотра как обычно и проверяем ожидаемые ответы. Наша фиктивная функция гарантирует, что ответы соответствуют пользовательским ответам, которые мы определили ранее:

res1 = requests.get('aurl')
assert res1 == 'a response'
res2 = request.get('burl')
assert res2 == 'b response'
res3 = request.get('curl')
assert res3 == 'c response'

Следуя этим шагам, вы сможете эффективно имитировать модуль Requests в своих тестах Python, что позволит вам имитировать различные ответы API и тщательно тестировать поведение вашего кода в различных сценариях.

Заявление о выпуске Эта статья перепечатана по адресу: 1729424602. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3