Laravel 5.6 Уведомление о тестировании :: assertSentTo () не найдено - PullRequest
1 голос
/ 30 марта 2020

В течение нескольких дней пытался получить метод Notification :: assertSentTo (), работающий в моем тесте функций электронной почты для сброса пароля в приложении Laravel 5.6, но получая текущие сбои со следующим кодом:

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Support\Facades\Notification;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class UserPasswordResetTest extends TestCase
{
   public function test_submit_password_reset_request()
   {
      $user = factory("App\User")->create();

      $this->followingRedirects()
         ->from(route('password.request'))
         ->post(route('password.email'), [ "email" => $user->email ]);

      Notification::assertSentTo($user, ResetPassword::class);
   }

}

Я испробовал несколько идей, в том числе использовать Illuminate \ Support \ Testing \ Fakes \ NotificationFake непосредственно в списке использования. При любых попытках тесты продолжают проваливаться с

Error: Call to undefined method Illuminate\Notifications\Channels\MailChannel::assertSentTo()

. Будем рады любым подсказкам, способствующим успешному тестированию. С уважением и заботой!

1 Ответ

1 голос
/ 30 марта 2020

Похоже, вам не хватает Notification :: fake (); Для правильного использования драйвера поддельного уведомления.

Notification::fake();

$this->followingRedirects()
...
...