Переносимое окружение для разработки и тестов

Сегодня организую трансляцию и вместе с Валентином Удальцовым и Кириллом Несмеяновым выступлю с докладом на втором митапе сообщества LivePHP в Санкт-Петербурге. Трансляция и запись будут здесь:

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



Начнём в 19:00 по МСК, раскачаем мир, захватим вселенную, а дальше как повезёт :)

Комментарии

 

Максим

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

По тестированию:

1. Когда тестируется API и отправка email сообщения через очередь вы используете скрипт ожидания, который ждет ответ очереди. При этом вы никак не протестировали само сообщение, которое ушло в очередь. В Symfony Messenger можно протестировать отправленное сообщение в очередь. И после того как отработало можно проверить ушло ли письмо. Так же можно использовать sync, in-memory транспорт, вместо реального вызова брокера сообщений.

2. Касается фикстур для тестов. А что если действительно отказаться от фикстур в функциональных тестов и заменить их на вызов команды, затем получения из Query ответа и проверить его. Кроме того было бы полезно проверять что интеграционное событие так же было опубликовано. Тогда получилась бы связка Command -> Event -> Query.

Например, нам нужно проверить блокировку пользователя. Для этого мы вызываем Join By Email Command. Далее вызываем Block Command и проверяем, что в шине появилось событие UserBlocked.

Фикстуры делают тоже самое, только при этом нам приходится писать их отдельно для каждого кейса, а так же писать Builder. Можно убрать это звено и просто вызывать акцентировать своё внимание на конечных контрактах Command, Event, Query, Policy… Фикстуры использовать только для демо данных.

3. Почему отправку email сообщения вызываете отдельным сервисом JoinSender, вместо того чтобы подписаться на событие UserJoined в модуле Mailer?

Ответить

 

Serg

Добрый день, будет ли продолжение курса по Slim? Если да, то когда?

Ответить

Оставить комментарий

Войти | Завести аккаунт | Войти через


(никто не увидит)





Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>