Я собираюсь написать несколько тестов для моих методов контроллера laravel 7 (конечных точек), чтобы убедиться, что они запускают событие наблюдателя модели (например, событие saved в модели Product)
поскольку вы теперь моделируете события наблюдателя, не срабатывают при использовании массового обновления, и, возможно, мои товарищи по команде используют массовое обновление (по ошибке), тогда любое событие не срабатывает и нарушает оставшиеся процессы
Таким образом, с помощью этих тестов я могу быть уверен, что все части, которые полагаются на события наблюдателя модели, в настоящее время работают.
В документ тестирования laravel упоминается, что если вы хотите подтвердить, что событие было отправлено, используйте этот код (например):
public function testOrderShipping()
{
Event::fake();
$order = factory(Order::class)->create();
// Assert an event was dispatched
Event::assertDispatched(OrderCreated::class);
}
Можно ли утверждать, что событие наблюдателя модели тоже было запущено (отправлено)?
I считать имя события, которое вы должны утверждать, было запущено - "eloquent.created: App\Models\Order",






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