Источник https://gitter.im/silverbulleters/vanessa-behavior?at=5b697f7774470f5c985e9fe7 Andrey @KrapivinAndrey авг. 07 14:16 Лень писать статью на Infostart. Может кому пригодится. https://github.com/KrapivinAndrey/VanessaFakeMail Мне потребовалось автоматизировать контроль отправления почты. А то третий раз уже ломают. Это микробиблиотека
Infactum @Infactum авг. 07 14:39 С чего вы решили, что если отправить письмо, то до получателя оно дойдет? Странный способ тестирования.. зачем оно? Это я про
Допустим отправляю уведомления на почту
Тогда пришло письмо
Тогда в ящике есть новые письма
И письма для "[email protected]"
И темой письма "SPAM!!!"
Andrey @KrapivinAndrey авг. 07 15:02 В этих строках обращение к SMTP серверу. Так что проверяется что "пули ушли" Но чтобы аналитику было понятно, пришлось использовать такой текст Проблема в том что иногда все ломалось и письма не уходили
Infactum @Infactum авг. 07 15:06 Имхо тест должен быть таким
Допустим я настроил отправку уведомлений на почту
И я выполняю какое-то действие
И уведомление передано SMTP серверу
далее не проблема 1С и еще проверку настроек можно в другом тесте. Что установка каких-то там настроек системы уведомлений приводит к верной комбианции параметров SMTP
Andrey @KrapivinAndrey авг. 07 15:21 @Infactum Так и выглядело в начале. Но с т.з. читабельности - не айс
Infactum @Infactum авг. 07 15:22 Так смысл другой в тесте совсем. И библиотека не нужна. Зачем эмулировать работу SMTP вообще?
Andrey @KrapivinAndrey авг. 07 15:23
Когда Администратор открывает обработку
Дано Я открыл сеанс TestClient от имени "Администратор (ФедоровБМ)" с паролем "" или подключаю уже существующий
И Я закрыл все окна клиентского приложения
И запускаю обработку КФокус из дополнительных отчетов и обработок
И настраивает Наблюдение
И я нажимаю на кнопку 'Наблюдение'
Тогда открылось окно 'Хранение данных и наблюдение: Контур.Фокус'
Тогда указываю параметры почты
И в поле 'Адрес эл.почты' я ввожу текст '[email protected]'
И в поле 'Сервер SMTP' я ввожу текст 'localhost'
И в поле 'Порт SMTP' я ввожу текст '1025'
Тогда проверяю что все настроено корректно
Когда я нажимаю на кнопку 'Проверить настройки учетной записи'
Тогда открылось окно 'Укажите email для проверки:'
И в поле 'InputFld' я ввожу текст '[email protected]'
И я нажимаю на кнопку 'OK'
Тогда я получаю письмо от системы
Тогда в ящике есть новые письма
И темой письма "Контур.Фокус: тестовое письмо"
И письма для "admin"
И сохраняем настройки
Тогда открылось окно 'Хранение данных и наблюдение: Контур.Фокус *'
И я нажимаю на кнопку 'Сохранить'
Тогда я закрываю TestClient "Этот клиент"
Infactum @Infactum авг. 07 15:25 И в итоге тест не работы уведомлений, а уведомлений + smtp (и то частично). А если письмо не дошло, из-за блока по спаму? Или принимающий сервере лежит? и т.д..
Andrey @KrapivinAndrey авг. 07 15:26 Это уже не наши проблемы как раз. Наша задача чтобы отработало уведомление корректно
Infactum @Infactum авг. 07 15:26 Но вы же не можете это гарантировать) Вы можете только отдать его SMTP.. не более
Andrey @KrapivinAndrey авг. 07 15:27 Тестировать не зависящий от нас транспорт - странная задача. Вдруг по mail.ru работает, а gmail.com нет. Все почтовые сервера не протестируешь
Infactum @Infactum авг. 07 15:27 А ваш тест именно это и описывает
Andrey @KrapivinAndrey авг. 07 15:28 тест описывает что данные переданы в транспорт.
Infactum @Infactum авг. 07 15:28
Тогда я получаю письмо от системы
Тогда в ящике есть новые письма
И темой письма "Контур.Фокус: тестовое письмо"
И письма для "admin"
Andrey @KrapivinAndrey авг. 07 15:29 и? у пользователя в итоге может быть совсем другое название почты У меня тиражное решение.
Infactum @Infactum авг. 07 15:29 Тест проверяет, что вы получили письмо. Но это как раз то, что проверить нельзя (сами выше и написали). Нужно проверить, что письмо отдано SMTP с верными настройками. Или предполагается, что у вас пользователи так проверяют работу уведомлений на своих серверах?)
Andrey @KrapivinAndrey авг. 07 15:30 Тест не проверять что я его получил. Я согласен. но! Для читабельности решили оставить так. И стабильности Не предполагается. Это реальный кейс по настройке уведомления. Есть еще более большой сценарий по срабатыванию этих уведомлений.
Infactum @Infactum авг. 07 15:33 Вот не помню я с кем подобный кейс обсуждали не так давно. Я тогда советовал просто объект ИнтернетПочта подменить. Имхо проще. Но дело ваше.
Andrey @KrapivinAndrey авг. 07 15:35 Кодить меньше)
Infactum @Infactum авг. 07 15:36 Это еще вопрос где кодить меньше :)
Andrey @KrapivinAndrey авг. 07 15:38 да не вопрос) если б это была конфига - да. А у меня обработка. делать фасад в МодулеОбъекта - не очень благодарное дело.