Итак, рассмотрим следующее событие:
class UpdateApprovedClinicianCountBroadcastEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets;
public $count;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(int $count)
{
$this->count = $count;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PresenceChannel('approved-clinician-count');
}
}
Ничего сложного здесь нет.
Итак, в соответствии с документами вот как я должен тестировать это событие:
public function testBroadCastShouldEmit() {
Event::fake();
$count = 1;
Event::assertDispatched(UpdateApprovedClinicianCountBroadcastEvent::class, function ($e) use ($count) {
$e->count === $count;
});
}
Но я получаю:
Тесты \ Единица \ Здоровье \ Наборы данных \ Строители \ UpdateApprovedClinicianCountBroadcastEventTest x широкое приведение должно выдать [0,360 с]
Время: 503 мс, память: 30,00 МБ
Произошел 1 сбой:
1) Тесты \ Unit \ Health \ Datasets \ Builders \ UpdateApprovedClinicianCountBroadcastEventTest :: testBroadCastShouldEmit Ожидаемый [App \ Modules \ Clinics \ Events \ Событие UpdateApprovedClinicianCountBroadcastEvent] не было отправлено. Не удалось утверждать, что значение false равно true.
/ Users / xxx / Documents / health / vendor / laravel / framework / src / Подсветка / Поддержка / Тестирование / Fakes / EventFake. php: 62 / Users / xxx / Документы / здоровье / поставщик / Laravel / Framework / SRC / Освещение / Поддержка / Фасады / Фасад. php: 261 /Users/xxx/Documents/health/tests/Unit/Modules/Clinics/Events/UpdateApprovedClinicianCountBroadcastEventTest.php: 31
Итак, как вы тестируете события трансляции? Должен ли я назвать событие? Этот метод отправки вызывает меня? Как будто я запутался .