В Laravel модульное тестирование играет решающую роль в обеспечении качества и надежности вашего приложения. Когда дело доходит до тестирования функций, связанных с аутентификацией, важно иметь методы, позволяющие утверждать, что пользователь не аутентифицирован. В этой статье мы рассмотрим несколько удобных методов Laravel, которые позволяют легко тестировать сценарии, в которых пользователи не проходят аутентификацию.
Метод 1: assertGuest()
Метод assertGuest()
используется для подтверждения того, что ни один пользователь в настоящее время не аутентифицирован. Это гарантирует, что пользователь будет перенаправлен на страницу входа или ему будет отказано в доступе при попытке доступа к защищенным маршрутам. Вот пример использования:
public function testGuestCannotAccessDashboard()
{
$response = $this->get('/dashboard');
$response->assertGuest();
}
Метод 2: assertAuthenticated()
И наоборот, метод assertAuthenticated()
проверяет подлинность пользователя. Это полезно, если вы хотите протестировать сценарии, в которых пользователь успешно вошел в систему. Вот пример:
public function testLoggedInUserCanAccessProfile()
{
$user = User::factory()->create();
$response = $this->actingAs($user)
->get('/profile');
$response->assertAuthenticated();
}
Метод 3: assertCredentials()
Метод assertCredentials()
позволяет вам подтвердить, что предоставленные учетные данные действительны для аутентификации. Это удобно, если вы хотите протестировать функциональность входа в систему. Посмотрите этот пример:
public function testValidCredentialsCanLogin()
{
$user = User::factory()->create([
'email' => 'test@example.com',
'password' => bcrypt('password123'),
]);
$response = $this->post('/login', [
'email' => 'test@example.com',
'password' => 'password123',
]);
$response->assertCredentials([
'email' => 'test@example.com',
]);
}
Метод 4: assertInvalidCredentials()
С другой стороны, если вы хотите подтвердить, что предоставленные учетные данные недействительны, вы можете использовать метод assertInvalidCredentials()
. Это полезно при тестировании неудачных попыток входа в систему. Вот пример:
public function testInvalidCredentialsCannotLogin()
{
$user = User::factory()->create([
'email' => 'test@example.com',
'password' => bcrypt('password123'),
]);
$response = $this->post('/login', [
'email' => 'test@example.com',
'password' => 'wrongpassword',
]);
$response->assertInvalidCredentials();
}
Сценарии аутентификации при модульном тестировании имеют решающее значение для обеспечения безопасности и функциональности вашего приложения Laravel. В этой статье мы рассмотрели несколько удобных методов, предоставляемых Laravel для подтверждения неаутентифицированных пользователей. Используя эти методы в своих тестах, вы можете эффективно проверить поведение вашего приложения, когда пользователи не проходят аутентификацию.