Size: a a a

2020 October 04

D

Dmitry in symfony
user->makeVisible()
user->makeFuckable()
em->flush
publish(event($user))
источник

IG

Ivan Grigoriev in symfony
Dmitry
теортически достаточно юнитов, если проверить что событие было published в некую очередь, а потом юниты на сам консьюмер
но я согласен с вами, функциональные позволяют убедиться в том что целиком это все работает как надо
На подписчики не пишу юнит тесты. Это чисто сервисный код.

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

IG

Ivan Grigoriev in symfony
Dmitry
user->makeVisible()
user->makeFuckable()
em->flush
publish(event($user))
Либо явно, либо это спрятать в паблишер.
источник

D

Dmitry in symfony
Ivan Grigoriev
Либо явно, либо это спрятать в паблишер.
опасно прятать в паблишер, тогда код метода который работает с юзером будет зависеть от паблишера, потому что флаш будет именно там
источник

D

Dmitry in symfony
Ivan Grigoriev
На подписчики не пишу юнит тесты. Это чисто сервисный код.

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

IG

Ivan Grigoriev in symfony
Есть подходы, когда весь реквест оборачивается в транзакцию. И тогда в коде флаши появлялся только в очень специфичных местах. Например, таких.
источник

D

Dmitry in symfony
возможно, маловато данных чтобы судить, но я предпочитаю явный флаш
источник

D

Dmitry in symfony
думаю это просто влияние питона, так что настаивать не буду
источник

IG

Ivan Grigoriev in symfony
Dmitry
а если асинхронка? вызовется только паблиш, а дальше вообще никого не волнует кто получит сообщение, кому надо тот получит, мне кажется это не задача того кто паблишит проверять кто получит
По бизнес логике после создания пользователя нужно отправить уведомление.
Тест, проверяющий создание, в конце ставит ожидание, на сервис доставки.

Если асинхронно, то на сервис добавления асинхронных сообщений в очередь.
источник

D

Dmitry in symfony
Ivan Grigoriev
По бизнес логике после создания пользователя нужно отправить уведомление.
Тест, проверяющий создание, в конце ставит ожидание, на сервис доставки.

Если асинхронно, то на сервис добавления асинхронных сообщений в очередь.
ага, понял идею. благодарю
источник

IG

Ivan Grigoriev in symfony
Но если в подписчике есть логика, а не только реакция на сообщение, то его тоже надо тестировать.

А общем, всегда два типа тестов идут рука об руку: проверяющие функционал, и проверяющие компоновку приложения.
источник

МФ

Максим Федоров... in symfony
The Ant 🐜
потому что ебал ваш опенсорс, вот почему. Говнари делают для говнарей. А потом грудь колесом.
источник

SP

Sergey Protko in symfony
Сам удалишь сообщение?
источник

JB

Jurij Bachkov in symfony
Нормальное эмоциональное сообщение - не нуждается в модерирование
источник

VK

Vladyslav Kopaihorod... in symfony
источник

VK

Vladyslav Kopaihorod... in symfony
Пошел чинить опенсорс))099
источник

ВМ

Виктор Монастырев... in symfony
Он точно программист? ))
источник

JB

Jurij Bachkov in symfony
пограммист
источник

МФ

Максим Федоров... in symfony
Sergey Protko
Сам удалишь сообщение?
Ок
источник
2020 October 05

AN

Alexander Nazarov in symfony
Подскажите плизз, если я использую AbstractGuardAuthenticator, то мне в любом случае нужно будет делать UserProvider?
источник