Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Прокси-сервер разработки и модульные тесты служат различным целям в стратегии тестирования. Хотя оба являются ценными, они тестируют приложение по-разному. Использование их вместе обеспечивает более полное понимание поведения вашего приложения.
Различные подходы к тестированию
Модульные тесты тестируют изолированные фрагменты кода с макетами зависимостей. При написании модульного теста для кода, вызывающего API, вы обычно создаёте имитацию HTTP-клиента, чтобы он возвращал заранее определенные ответы. Этот подход позволяет убедиться, что код правильно обрабатывает определенные сценарии.
Прокси-сервер разработки тестирует работающее приложение с имитацией поведения API. Вместо имитации кода прокси разработки перехватывает фактические HTTP-запросы и имитирует реальные условия, такие как ошибки, регулирование и задержка. Этот подход проверяет приложение в целом, включая все слои между кодом и API.
Когда использовать каждый из них
Используйте модульные тесты, когда вы хотите:
- Тестирование поведения конкретных функций и пограничных вариантов
- Проверка бизнес-логики в изоляции
- Получение быстрых отзывов во время разработки
- Обеспечение высокого уровня охвата кода
- Тестирование путей обработки ошибок
Используйте прокси-сервер разработки , если вы хотите:
- Протестируйте ваше работающее приложение от начала до конца
- Симулируйте условия, которые трудно воспроизвести, например, ограничение пропускной способности или проблемы с сетью.
- Тестирование реальной логики повторных попыток и обработки ошибок на всех уровнях
- Запуск приложения под нагрузкой со случайными сбоями
- Проверка устойчивости без изменения кода
Преимущества Dev Proxy
Прокси-сервер разработки предлагает несколько преимуществ по сравнению с традиционными подходами к имитации:
- Никаких изменений кода не требуется. Вам не нужно изменять приложение для использования прокси-сервера разработки. Он работает на уровне сети, перехватыв HTTP-запросы прозрачно.
- Работает с любой библиотекой HTTP. Некоторые библиотеки HTTP знамениты своей сложностью для имитации. При использовании прокси-сервера разработки не имеет значения, какую библиотеку вы используете : RestSharp, HttpClient, Axios или любую другую. Прокси-сервер разработки перехватывает весь HTTP-трафик независимо от библиотеки.
- Проверяет реальное приложение. Модульные тесты с макетируемыми HTTP-клиентами не проверяют фактическую логику повторных попыток, обработку подключений или поведение времени ожидания. Dev Proxy тестирует настоящее приложение со всеми его зависимостями.
- Проще понять ошибки. Когда вы можете активировать сбои по запросу в работающем приложении, проще понять и отладить их обработку.
- Имитирует сложные условия. Прокси для разработки может имитировать условия, непрактичные для воспроизведения с помощью макетов, таких как случайные отказы под нагрузкой, постепенное ограничение скорости или периодические проблемы с сетью.
Дополнительная стратегия тестирования
Наиболее эффективный подход объединяет оба метода тестирования:
- Используйте модульные тесты для логики. Напишите модульные тесты, чтобы проверить бизнес-логику, преобразования данных и конкретные пути обработки кода.
- Используйте прокси-сервер разработки для обеспечения устойчивости. Используйте Dev Proxy, чтобы убедиться, что приложение правильно обрабатывает условия API реального мира: ограничение, ошибки и медленные ответы.
- Используйте оба в CI/CD. Запустите модульные тесты для получения быстрого фидбэка по каждому коммиту. Используйте прокси-сервер разработки в тестах интеграции для перехвата проблем устойчивости перед развертыванием.
Модульные тесты сообщают о правильности кода. Прокси-сервер разработки сообщает, является ли ваше приложение устойчивым. Вам нужно и то, и другое.
Дальнейшие действия
- Тестирование приложения с случайными ошибками — 5 минут
- Используйте Dev Proxy в CI/CD — запускайте в своем конвейере и модульные тесты, и Dev Proxy