Тестирование промежуточного программного обеспечения в значительной степени зависит от логики c самого промежуточного программного обеспечения и от возможных результатов. Давайте возьмем в качестве примера промежуточное программное обеспечение verified
, которое вы привели в качестве примера:
Мы ожидаем, что пользователь будет перенаправлен (302) на страницу «Подтверждение вашей электронной почты», если он не подтвердил свою электронную почту (атрибут email_verified_at
) является нулевым), в противном случае мы ожидаем нормального ответа (200).
Как мы можем симулировать доступ пользователя к нашей странице? С помощью метода actingAs
. Из документов :
Вспомогательный метод actingAs
предоставляет простой способ аутентификации данного пользователя в качестве текущего пользователя.
Так что наш код будет выглядеть примерно так:
use App\User;
class ExampleTest extends TestCase
{
public function testAccessWithoutVerification()
{
// Create a dummy user
$user = factory(User::class)->create();
// Try to access the page
$response = $this->actingAs($user)
->get('/the-page-we-want-to-test');
// Assert the expected response status
$response->assertStatus(302);
}
public function testAccessWithVerification()
{
// Create a dummy user, but this time we set the email_verified_at
$user = factory(User::class)->create([
'email_verified_at' => \Carbon\Carbon::now(),
]);
// Try to access the page
$response = $this->actingAs($user)
->get('/the-page-we-want-to-test');
// Assert the expected response status
$response->assertStatus(200);
}
}
Документы имеют целую страницу , посвященную HTTP-тестам , зацените.