Laravel: не удается запустить Notification::assertSentTo при тестировании командыPhp

Кемеровские программисты php общаются здесь
Anonymous
Laravel: не удается запустить Notification::assertSentTo при тестировании команды

Сообщение Anonymous »


Laravel 9

В моем приложении Laravel уже проводились тесты, проверяющие отправку уведомлений. Типичный

Notification::fake(); $this->post('/forgot-password', ['email' => $user->email]); Уведомление::assertSentTo($user, ResetPassword::class); и некоторые другие подобные. Но... теперь, когда я тестирую уведомления, отправляемые при вызове команды, все происходит по-другому.

публичная функция testHandle_happyPath() { Уведомление::фейк(); $customer = CustomerFactory::new()->default()->create([ 'account_status' => AccountStatus::TRIAL, 'created_at' => Carbon::now()->subDays(28) ]); ConfigurationKey::PREVIOUS_DAYS_TO_NOTIFY_TRIAL_EXPIRY()->setInteger(2); $result = $this->artisan(NotifyTrialsToExpireCommand::class); $клиент->обновить(); $result->assertSuccessful(); Уведомление::assertSentTo($customer, TrialNextToExpireNotification::class); } Результат

Ожидаемое уведомление [App\Notifications\TrialNextToExpireNotification] не было отправлено.

В моей конфигурации phpunit уже есть , чтобы избежать связанных с этим проблем.

Я проверил это вручную, и это работает.

Очевидно, что это напрямую связано с использованием вызова $this->artisan. Какую вещь я мог игнорировать? Этот тип тестов должен быть подготовлен по-другому? Неужели нельзя протестировать таким способом?

Вернуться в «Php»