Обработка запросов сторонних API в сквозном тестировании - PullRequest
0 голосов
/ 03 октября 2018

Я хочу протестировать мой Rest API с помощью сквозных тестов.Как я понимаю, разница между интеграционными тестами заключается в том, что мы не выполняем настройку системы в памяти, а используем реальные тестовые БД и сетевые запросы.

Но я не могу понять, как обрабатывать сторонние APIзапросы (например, GitHub или Bitbucket API).

Это нормальная практика - создавать фальшивую учетную запись Github с фальшивыми данными, которые будут получены моими тестами?

И что делать с токенами доступа, не все сервисы являются общедоступными, и даже публичные сервисы могут выходить из строя с ограничением скорости.

1 Ответ

0 голосов
/ 12 октября 2018

Это нормальная практика - создавать поддельную учетную запись Github с поддельными данными, которые будут получены моими тестами?

Да.Цель теста E2E (против интеграционного теста) - убедиться, что полная система работает со всеми действующими компонентами системы, как теми, что вы контролируете, так и теми, которые вы не имеете.Это может быть трудно настроить и поддерживать боль;но многие из этих болевых точек будут выставлять реальные потенциальные проблемы в вашей производственной службе.То, как ваша служба реагирует на эту нестабильность, само по себе является функцией, которую необходимо протестировать: происходит ли сбой и сгорание вашей системы, или она корректно отображает сообщение об ошибке и поддерживает правильную обработку повторов?

Это также дает вам тип покрытия.это не может обеспечить насмешка: если сторонний API, который вы используете, порочен и вводит какие-то критические изменения, ваши тесты E2E его поймают.Это достойная причина для постоянного запуска вашего пакета E2E;не только во время развертывания.

Следующим уровнем такого рода тестирования является проектирование хаоса , где вы не только тестируете свои производственные системы, но и целенаправленно вносите ошибки (да, в продукт) вчтобы убедиться, что ваша служба действительно может справиться с давлением.

И что делать с токенами доступа, не все службы являются общедоступными, и даже публичные службы могут не работать с ограничением скорости.

Ваша промежуточная среда должна быть настроена с отдельными учетными записями песочницы для внешних служб.Я не уверен, что вы подразумеваете под "не все сервисы общедоступны", но просто стремитесь сделать вашу промежуточную среду (или тестировать пользователей на prod) максимально идентичной реальному пользователю prod.Для служб, которые не поддерживают токены множественного доступа, вы можете проявить творческий подход и попытаться четко разграничить свои тестовые данные в своей системе.

Ограничения скорости могут раздражать, но если вы подходите достаточно близко, чтобы ваши тестыесли вы превысите лимит, вам следует в любом случае придерживаться стратегии решения этой проблемы (переговоры с сервисом, получение нескольких аккаунтов, ...).

...