Laravel: не удается запустить Notification::assertSentTo при тестировании команды ⇐ Php
Laravel: не удается запустить Notification::assertSentTo при тестировании команды
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. Какую вещь я мог игнорировать? Этот тип тестов должен быть подготовлен по-другому? Неужели нельзя протестировать таким способом?
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. Какую вещь я мог игнорировать? Этот тип тестов должен быть подготовлен по-другому? Неужели нельзя протестировать таким способом?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Apple Push Notification — настройте сообщение, которое будет отображаться при смене пропуска.
Anonymous » » в форуме IOS - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема с событием интеграции конечной точки ISAPI/Event/notification/alertStream
Anonymous » » в форуме Php - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Apple Watch не получают уведомления от Firestore Cloud Messaging Notification
Anonymous » » в форуме IOS - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Notification.php для API концентратора уведомлений Windows Azure с использованием PHP
Anonymous » » в форуме Php - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-