Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 31.10.2017 21:05:22

htclog81
Откуда: Москва
Сообщений: 192
Сайт

Тестирование

Особенно важно имитировать отправку емэйлов, работу со сторонним API и т.д.

А как лучше в phpunit имитировать отправку e-mail из нотификации внутри тестируемого метода? Что бы не просто проверилось отсылается ли он, а реально он пришел причем не на адресс фейкового юзера, а на мой wink

Не в сети

#2 01.11.2017 00:17:22

Re: Тестирование

Что бы не просто проверилось отсылается ли он, а реально он пришел причем не на адресс фейкового юзера, а на мой

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

А на то, что письма реально отправляются - пишется другой тест, на функцию отправки письма.

Логика такая: раз тест на отправку письма проходит, значит во всех других местах, где есть отправка письма - достаточно проверить корректность аргументов.

Изменено covobo (01.11.2017 00:18:17)

Не в сети

#3 01.11.2017 08:37:52

htclog81
Откуда: Москва
Сообщений: 192
Сайт

Re: Тестирование

  1. А на то, что письма реально отправляются — пишется другой тест, на функцию отправки письма.

Да я это знаю. Просто assert того что оно внутри функции отправилось.

  1. т.е. ты мочишь нужный функицонал и сравниваешь аргументы, если аргументы верны — то по идеи все должно работать.

А можешь послать в нужном направление, где пример такого?

Ну, а проверка того, что письмо пришло на почту и корректно его верстка в браузере отображается это уже не unit, а feature тест? И тут уже просто тестируем условно говоря кликая по ссылкам как всегда…

Не в сети

Подвал раздела