Тестові адреси, які не спричиняють інцидентів

Тестування будь-чого, що надсилає пошту, впирається в те саме питання: яку адресу вписати? Неправильна відповідь дає клас помилок, які нічого не ламають, але за які соромно, — лист із вашого тестового середовища приходить справжній людині.

Спершу вирішіть, чи лист має дійти

Це одне питання вирішує все, і ставити його варто явно, бо відповідь «ні» буває частіше, ніж припускають.

Що ви тестуєтеЛист має дійти?Що брати
Перевірку, зберігання, показ адресинізарезервований домен — див. нижче
Сценарій підтвердження, рукамитакскриньку тут
Сценарій підтвердження, автоматичнотак, і читати має кодсервіс з API
Навантажувальне тестуванняні — і не повинензарезервований домен, завжди

Коли лист не має дійти: зарезервовані імена

Для цього існують два домени, які гарантовано нікому не належать: example.com разом із example.net та example.org, зарезервовані RFC 2606, а також цілий домен верхнього рівня .test.

Адреси на них — правильна відповідь для фікстур, тестових даних і навантажувальних прогонів. Жоден надісланий лист не дійде до людини, бо там нікого немає: за міжнародною домовленістю, а не за випадковим збігом.

⚠️
Не вигадуйте домени, що виглядають правдоподібно. test@mycompanytest.com достатньо часто виявляється чиїмось справжнім доменом, а навантажувальний прогін по ньому нічим не відрізняється від атаки. Зарезервовані імена не коштують нічого й прибирають цілу категорію прикрих випадковостей.

Коли лист має дійти, і ви дивитесь руками

Візьміть адресу тут, пройдіть сценарій і прочитайте, що ваш застосунок насправді надіслав, — заголовки, посилання й те, як лист виглядає, коли його показує не ваш власний поштовий клієнт. Дві речі, яких локальний перехоплювач пошти не ловить:

Якщо ваш застосунок надсилає файли, подивіться й на попередження про вкладення: ваші користувачі побачать рівно ті самі.

Коли це має бути автоматично

ℹ️
Публічного API тут немає. Скриньку можна прочитати лише на сторінці; нічого, що можна опитувати скриптом, ми не пропонуємо. Сказано прямо, щоб ніхто не витратив півдня на пошуки: для автотестів, які мусять прочитати лист, беріть сервіс, зроблений саме для цього, — з обліковим записом і ключем.

Розбирати натомість нашу сторінку того не варте, навіть коли воно працює: це крихко, ніде не описано, і це рівно той шаблон трафіку, який урешті блокують.

Тестування шляхів відмови

Цікаві збої — не «коректна адреса працює». Варто покрити:

Одна річ, яку варто зробити, а не протестувати

Якщо ваш продукт не приймає одноразових адрес, відмовляйте зрозуміло. «Недійсна адреса» для цілком коректної адреси — найзаплутаніша помилка в цій категорії: людина перевіряє написання, набирає ще раз і отримує те саме повідомлення. «Ми не приймаємо тимчасові адреси» займає стільки ж місця й знімає плутанину.

Усі статті