Тест прокси должен обрушивать прямое соединение
Отделите тестовую сеть приложения от выхода прокси, чтобы незамеченное прямое соединение не делало тест прокси успешным.
Локальный прокси, слушающий рядом с приложением, не воспроизводит сеть, которая требует доступа через прокси. Приложение может проигнорировать настроенный прокси, подключиться напрямую и всё равно сообщить об успехе.
Отделите сеть приложения от внешнего пути прокси. Одна схема на контейнерах помещает приложение только во внутреннюю сеть, а прокси получает вторую выходную сеть. В существующем описании Compose подключения к сетям могут выглядеть так:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Это фрагмент сети для уже определённых сервисов. Настройте одобренный пересылающий прокси и фактический клиент приложения по отдельности. Docker описывает внутренние сети как изолированные снаружи; в этой схеме дополнительная внешняя сеть есть только у прокси.
Добавьте отрицательный случай без использования прокси: внешний запрос приложения должен завершиться ошибкой. Для HTTP-прокси с аутентификацией отклонённая учётная запись должна давать свою ошибку аутентификации, а принятая — достигать цели с соответствующим наблюдением со стороны прокси.
Проверяйте разрешённые и запрещённые случаи прокси по отдельности. Держите приложение вне других внешних сетей и не добавляйте режим сети хоста, обходящий прокси. Успешный запрос становится полезным доказательством только тогда, когда тест предоставляет именно задуманный маршрут.