Email-адаптер избавляет тесты от зависимости от формата ответа одного провайдера. Он должен предоставлять небольшой контракт, сохраняя при этом достаточно информации для диагностики сбоев.
Определите четыре операции
- Подготовка: создать разрешённого синтетического получателя и записать контекст теста.
- Ожидание: найти сообщение, соответствующее получателю, цели и окну запроса, в пределах заданного срока.
- Чтение: получить содержимое, необходимое для проверки, не логируя секреты.
- Очистка: удалить тестовые артефакты там, где это поддерживается, и зафиксировать любую незавершённую очистку.
Возвращайте различимые результаты
| Результат | Значение |
|---|---|
| Совпадение | Сообщение удовлетворяет правилам корреляции этого теста. |
| Истёк таймаут | Совпадающее сообщение не было обнаружено до истечения срока. |
| Доступ отклонён | Не удалось проверить учётные данные или доступ к почтовому ящику. |
| Провайдер недоступен | Почтовый сервис не смог завершить операцию. |
Тестируйте адаптер независимо
Используйте фикстуры для проверки пагинации, пустых результатов, повторных попыток, некорректных ответов и отмены. Держите небольшую живую интеграционную проверку с ограничением частоты запросов для поведения, которое фикстуры не могут воспроизвести. Следуйте актуальному API-контракту провайдера, а не парсингу интерфейса почтового ящика.
Держите продуктовые проверки выше адаптера
Тест приложения должен решать, имеет ли приветственное сообщение правильного адресата или меняет ли процесс верификации ожидаемое состояние. Адаптер не должен молча объявлять эти бизнес-результаты успешными лишь потому, что письмо пришло.
Ознакомьтесь с актуальной документацией CleanTempMail API перед реализацией его адаптера, включая аутентификацию и лимиты использования.