私は、ユーザーがアクティブ化プロセスを実行するたびに、特定のチャネルで当社のスラックアカウント内にメッセージを送信するスラック通知クラスを持っています。デマンド通知でのLaravelテスト
システムは動作しますが、手動でテストされていますが、それはクールではありません。
public function handle(UserHasBeenActivated $event)
{
Notification::route("slack", config("services.slack.user.url"))
->notify(new UserActivated($event->user));
}
単純明快:
通知がUserHasBeenActivated
イベントにアタッチリスナーによって送信され、リスナーは、以下です。ここでの問題は、通知がオンデマンドであるため、テストするのが難しいということです。オンデマンド通知のテスト方法に関するドキュメントは一切ありません。現時点で
public function it_sends_a_notification_when_an_user_is_activated()
{
Notification::fake();
$user = factory(User::class)->states("deleted")->create();
$user->activate();
Notification::assertSentTo(
$user,
UserActivated::class
);
}
このテストが失敗もちろん、activate()
方法はUserHasBeenActivated
、順次すべてのリスナーのイベントをトリガし、そのうちの一つは、対応する通知を送信するものです。
オンデマンド通知のテスト方法をご存知ですか?隠されたAPIはありますか?
は問題が 'UserActivated'と' UerHasBeenActivated'の違いかもしれませんか? – milo526
Nope sorry typo、編集 –
@ClaudioLudovicoPanetta無関係な質問ですが、どうやってこのようにスラックメッセージを送信できましたか?私の質問はここにあります:https://stackoverflow.com/questions/48278174/laravel-5-5-on-demand-notification-with-slack – Edwin