Size: a a a

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

2020 February 01

AS

Andrew Shmatko in Laravel для начинающих
Иван Лещенко
Проверка в коллекции: $collection->contains($model)
спасибо
источник

ЕК

Егор Карась in Laravel для начинающих
Егор 🐟 Черненок, [02.02.20 00:45]
Вопрос по тестированию

Егор 🐟 Черненок, [02.02.20 00:46]
use Illuminate\Auth\Events\Login;
use App\Listeners\CreateUserBalance;


protected $listen = [
       Login::class => [
           CreateUserBalance::class,
       ]
   ];

Егор 🐟 Черненок, [02.02.20 00:46]
Есть вот такая вот конструкция. Листенер отрабатывает корректно.

Егор 🐟 Черненок, [02.02.20 00:47]
Как его протестировать?

Event::fake();
       $user = factory(User::class)->create();

       $response = $this->post('/login', [
           'email' => $user->email,
           'password' => 'password'
       ]);

       Event::assertDispatched(CreateUserBalance::class);

Подобная конструкция говорит "не было задиспатчено"
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Егор Карась
Егор 🐟 Черненок, [02.02.20 00:45]
Вопрос по тестированию

Егор 🐟 Черненок, [02.02.20 00:46]
use Illuminate\Auth\Events\Login;
use App\Listeners\CreateUserBalance;


protected $listen = [
       Login::class => [
           CreateUserBalance::class,
       ]
   ];

Егор 🐟 Черненок, [02.02.20 00:46]
Есть вот такая вот конструкция. Листенер отрабатывает корректно.

Егор 🐟 Черненок, [02.02.20 00:47]
Как его протестировать?

Event::fake();
       $user = factory(User::class)->create();

       $response = $this->post('/login', [
           'email' => $user->email,
           'password' => 'password'
       ]);

       Event::assertDispatched(CreateUserBalance::class);

Подобная конструкция говорит "не было задиспатчено"
Оно вроде только в юнитах работает
источник

ЕК

Егор Карась in Laravel для начинающих
Иван Лещенко
Оно вроде только в юнитах работает
Согласен, именно их я и пишу)
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
Егор Карась
Егор 🐟 Черненок, [02.02.20 00:45]
Вопрос по тестированию

Егор 🐟 Черненок, [02.02.20 00:46]
use Illuminate\Auth\Events\Login;
use App\Listeners\CreateUserBalance;


protected $listen = [
       Login::class => [
           CreateUserBalance::class,
       ]
   ];

Егор 🐟 Черненок, [02.02.20 00:46]
Есть вот такая вот конструкция. Листенер отрабатывает корректно.

Егор 🐟 Черненок, [02.02.20 00:47]
Как его протестировать?

Event::fake();
       $user = factory(User::class)->create();

       $response = $this->post('/login', [
           'email' => $user->email,
           'password' => 'password'
       ]);

       Event::assertDispatched(CreateUserBalance::class);

Подобная конструкция говорит "не было задиспатчено"
а что ты собрался тестить
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Егор Карась
Согласен, именно их я и пишу)
Это фич
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Юнит тестит сервисы
источник

ЕК

Егор Карась in Laravel для начинающих
Alexander Pavlenko 🌚
а что ты собрался тестить
Я хочу оттестить свой листенер, но для этого мне бы тестом в него попасть для начала
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
ты же показал протектед свойство
источник

ИЛ

Иван Лещенко in Laravel для начинающих
А ты тестишь эндпоинты
источник

AS

Andrew Shmatko in Laravel для начинающих
Переписал метод через релейшен. Вроде как вместо двух запросов будет один.

   public function likers()
   {
       $likerIds = Like::where(['liked_id' => $this->id])->get()->map->liker_id;
       return User::whereIn('id', $likerIds)->get();
   }
public function likers()
   {
       return $this->belongsToMany(User::class, 'likes', 'liked_id', 'liker_id');
   }

Этот тоже стоит переписать? Какие будут плюсы? Вместо Builder будет возвращася обект релейшена, это ок?
 public function likes()
   {
       return Like::where([
           'liker_id' => $this->id,
       ]);
   }
источник

ЕК

Егор Карась in Laravel для начинающих
Иван Лещенко
А ты тестишь эндпоинты
Ну энивей, про логине отрабатывает листенер, так?

Почему бы ему не отработать когда я дёргаю логин?
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Егор Карась
Ну энивей, про логине отрабатывает листенер, так?

Почему бы ему не отработать когда я дёргаю логин?
В фич тестах проверяют респонсы
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Ты хочешь проверить логику после аутентификации
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Тебе нужен юнит, в котором ты напрямую через гуард авторизуешься
источник

ЕК

Егор Карась in Laravel для начинающих
Это будет следующий тест, факт, что листенер отрабатывает я тоже хочу чекнуть, разве нет?
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Тут хз
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Мне кажется оно в отдельном потоке работает
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
Егор Карась
Это будет следующий тест, факт, что листенер отрабатывает я тоже хочу чекнуть, разве нет?
Ну так проверь результат
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Или что-то в этом роде
источник