Size: a a a

Laravel для начинающих

2021 November 19

A

Adel in Laravel для начинающих
тогда это не юнит-тест)
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
нуу тут можно спорить, зависимости могут быть с поведением не обязательно влияющим на сам тест, и мок их не нужен. с чего от этого тест перестанет быть юнитовым?
Есть у меня class Foo

   public function __construct(Logger $log){}

   // Возвращает 4
   public function foo(): int

Мне нет необходимости мокать логер что бы проверить что foo например возвращает каждый раз число 4 )
источник

A

Adel in Laravel для начинающих
это ты залез в код и посмотрел, что логгер не участвует.
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
нет у меня контракт "функция фуу класса фуу возвращает 4"
именно это я и должен тестировать
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
а лог я вообще могу передать реальный что бы видеть потом его при просмотре логов запуска тестов.
источник

A

Adel in Laravel для начинающих
через год мы выносим эту логики "возврата 4" в отдельный класс. и делаем зависимость на него. тест всё просит создать на лету, поэтому даже не сломается. через 2 года в той зависимости, которая тоже стало сложной уже начинает возвращать 3.
источник

A

Adel in Laravel для начинающих
разработчик смотрит в ЮНИТ тест - НАШЕГО класса , который не менялся уже 2 года и не понимает что сломалось
источник

A

Adel in Laravel для начинающих
не надо чушь делать и херней страдать. хочешь писать юнит тесты - пиши юнит тесты.
источник

A

Adel in Laravel для начинающих
хочешь какие-то другие - не называй их юнит-тестами
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
"тест всё просит создать на лету, поэтому даже не сломается" - вот тут я не понял
источник

A

Adel in Laravel для начинающих
"инстанцируешь класс передавая один мок а остальные не моки и вызываешь нужные методы объекта"
источник

A

Adel in Laravel для начинающих
можно же просто у фреймворка спросить - создай мне класс с нужными зависимостями
источник

A

Adel in Laravel для начинающих
а другие зависимости он как создаст в этом тесте? тоже самое же
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
вынес ты логику, ты написал тест на новый класс. это раз.
и ты положил инстанс этого нового класса в конструктор при порождении старого. как в этой схемме что то может сломаться так что будет не ясно что именно я не понял)
источник

A

Adel in Laravel для начинающих
и что тогда тестит первоначальный юнит-тест? после выноса логики?
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
ты уже подменяешь понятия я не предлогал извлекать класс из контейнера.
источник

A

Adel in Laravel для начинающих
а как ты логгер ему реальный подсунешь?
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
всё тоже - контракт)
источник

SU

Serzh Underwood in Laravel для начинающих
Подскажите может кто сталкивался - пробросить событие из ларавел на фронт во vujs
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
new сделаю
источник