Ответ
Коллекции активно используются для структурирования тестовых данных, валидации ответов API и управления состоянием в тестах.
Типичные сценарии использования:
-
Валидация структуры и данных ответа API:
# Ответ API: {"users": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]} response_data = response.json() # Проверка, что ответ — список assert isinstance(response_data["users"], list) # Проверка количества элементов assert len(response_data["users"]) == 2 # Поиск элемента по условию (используя словарь внутри списка) user = next((u for u in response_data["users"] if u["id"] == 1), None) assert user["name"] == "Alice" -
Параметризация тестов: Передача наборов данных в тест.
import pytest @pytest.mark.parametrize("user_id, expected_name", [ (1, "Alice"), (2, "Bob"), ]) def test_get_user_by_id(user_id, expected_name): response = api.get_user(user_id) assert response.json()["name"] == expected_name -
Хранение тестовых данных: Словари для комплексных объектов, списки для наборов сущностей.
TEST_PRODUCTS = [ {"id": 101, "name": "Laptop", "price": 999.99}, {"id": 102, "name": "Mouse", "price": 25.50} ]
Ключевые аспекты: При работе с коллекциями важно учитывать порядок элементов (важен для списков, не важен для множеств), уникальность и производительность операций поиска (словари O(1) vs списки O(n)).