Я пытаюсь написать Laravel тест PHPUnit, который проверяет, была ли почта помещена в очередь после создания пользователя.
<?php
namespace Tests\Unit\User;
use App\User;
use Tests\TestCase;
use App\Notifications\UserCreated;
use Illuminate\Support\Facades\Mail;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\Notification;
use Illuminate\Foundation\Testing\RefreshDatabase;
class UserUnitTest extends TestCase
{
use RefreshDatabase;
/**
* check if a user was created in database
*
* @return void
*/
public function testUserCreate()
{
$user = factory(User::class)->create();
$this->assertDatabaseHas('users', [
'email' => $user->email,
'active' => 0,
'activation_token' => $user->activation_token,
'deleted_at' => NULL
]);
}
/**
* check if email was sent after user was created in database
*
* @return void
*/
public function testEmailSentAfterUserCreated()
{
Notification::fake();
// Assert that no notifications were sent...
Notification::assertNothingSent();
$user = factory(User::class)->create();
// Assert a notification was sent to the given users...
Mail::assertQueued(UserCreated::class, 1);
}
}
Когда я запускаю этот тест testEmailSentAfterUserCreated выдает следующее исключение.
Произошла 1 ошибка:
1) Tests \ Unit \ User \ UserUnitTest :: testEmailSentAfterUserCreated BadMethodCallException: метод Illuminate \ Mail \ Mailer :: assertQueued делает не существует.
/ home / vagrant / Проекты / endiro / vendor / laravel / framework / src / Подсветка / Поддержка / Черты / Macroable. php: 103 / home / vagrant / Проекты / endiro / vendor / Laravel / Framework / SRC / Освещение / Поддержка / Фасады / Фасад. php: 245 /home/vagrant/Projects/endiro/tests/Unit/User/UserUnitTest.php:49
Класс Mail был включен, и я уверен, что аргументы верны, но я не уверен, почему я получаю эту ошибку.