Ответ
Тестирование коллекций — базовая и частая задача. Вот ключевые аспекты и примеры на Python:
1. Проверка структуры и размера:
assert isinstance(response_json['items'], list), "Ответ должен быть списком"
assert len(users) == expected_count, f"Ожидалось {expected_count} пользователей"
2. Проверка содержимого и уникальности:
# Все элементы соответствуют условию
assert all(user['isActive'] for user in users), "Не все пользователи активны"
# Все ID уникальны
user_ids = [user['id'] for user in users]
assert len(set(user_ids)) == len(user_ids), "Найдены дубликаты ID"
3. Проверка сортировки и фильтрации:
# Данные возвращены в заявленном порядке (например, по дате)
dates = [item['createdAt'] for item in items]
assert dates == sorted(dates, reverse=True), "Сортировка по дате нарушена"
# Фильтрация работает корректно
admins = [user for user in users if user['role'] == 'admin']
assert len(admins) > 0, "Должен быть хотя бы один администратор"
4. Работа со словарями (объектами):
# Проверка наличия обязательных ключей
required_keys = {'id', 'name', 'email'}
assert required_keys.issubset(profile.keys()), "Отсутствуют обязательные поля"
# Проверка формата значений
import re
assert re.match(r'^[^@]+@[^@]+.[^@]+$', profile['email']), "Неверный формат email"
Почему это важно: Систематические проверки коллекций предотвращают ошибки в логике отображения, пагинации, фильтрации и сортировки данных.