2010-10-19 4 views
2

Веб-сайты включают функции электронной почты, такие как отправка регистрационной информации, напоминания пароля и т. Д.Что такое хороший способ написать функциональные тесты для функциональности электронной почты веб-сайта?

Я пытаюсь регулярно запускать функциональные тесты полных веб-сайтов за пределами веб-сайта и вам нужен способ получить эти тестовые электронные письма из httplib тестовый сценарий.

Раньше я использовал анонимные почтовые службы, где содержимое электронной почты можно было найти через несколько секунд или минут после отправки с помощью http GET.

Эти системы кажутся хрупкими, и они включают скрипинг экрана, который сам по себе является хрупким. Существуют ли службы, предоставляющие электронные письма через интерфейс xml/json GETable?

Есть ли принципиально лучший способ приблизиться к этому? Появляются новые почтовые веб-сервисы, такие как postmarkapp.com и yakmail.com; но первый не получает почту, а последний требует значительной предварительной подготовки.

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

+0

Это действительно неинтересный вопрос для веб-разработчиков? Не тестирует ли их веб-сайт по электронной почте систематически? – Rdbhost

ответ

0

Если вы пытаетесь проверить, отправляет ли ваш код электронные письма и правильное ли содержание электронного письма, высмеивание является лучшим решением. Взгляните на wiser. Модульные тесты и макеты тестов быстрее и полезнее (для отладки), чем интеграционные/функциональные тесты.

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

+0

Я имел в виду регрессионное тестирование, чтобы гарантировать, что рабочие системы не сломаются со временем, из-за некоторых, по-видимому, несвязанных изменений. Я несколько озадачен тем, почему это не проблема более высокого профиля с веб-разработчиками. – Rdbhost

+0

Задача теста - сказать вам, что что-то пошло не так. Если это также говорит вам, что случилось, и почему, это более полезно. Функциональные/интеграционные тесты часто не могут сказать вам, что пошло не так, поскольку может произойти цепочка событий, из-за которых тест завершился неудачей. OTOH, модульные тесты могут сузить небольшой фрагмент кода, потому что они не тестируют ваше приложение; они проверяют небольшой фрагмент кода. Я тоже пишу тесты F/I, но я не трачу на них много времени. Также во время теста открывается браузер, запускается тест f/i и закрывается, я мог бы запустить несколько модульных тестов. – rahul