Метод get
Метод get применяется в тестовых классах Laravel для отправки HTTP GET-запросов к указанному URL-адресу. Первым параметром передаётся строка с путём маршрута, вторым - массив с данными запроса. Метод возвращает объект TestResponse, который предоставляет множество утверждений для проверки ответа сервера.
Синтаксис
<?php
$this->get($uri, $headers);
?>
Пример
Давайте отправим GET-запрос на главную страницу и проверим успешный ответ:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class HomePageTest extends TestCase
{
public function test_home_page_returns_ok()
{
$res = $this->get('/');
$res->assertStatus(200);
}
}
?>
Результат выполнения кода:
"OK (200)"
Пример
Отправим GET-запрос с параметрами строки запроса для получения списка статей:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Article;
class ArticleTest extends TestCase
{
public function test_articles_list_with_pagination()
{
Article::factory()->count(5)->create();
$res = $this->get('/api/articles?page=1&limit=2');
$res->assertStatus(200)
->assertJsonCount(2, 'data');
}
}
?>
Результат выполнения кода:
"Success: 2 articles returned"
Пример
Отправим GET-запрос с кастомными заголовками для авторизованного пользователя:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\User;
class AuthenticatedUserTest extends TestCase
{
public function test_profile_page_for_authenticated_user()
{
$user = User::factory()->create();
$res = $this->actingAs($user)
->get('/profile', [
'X-Requested-With' => 'XMLHttpRequest'
]);
$res->assertStatus(200)
->assertSee($user->name);
}
}
?>
Результат выполнения кода:
"Profile page loaded successfully"
Смотрите также
-
метод
post,
который выполняет POST-запрос в тестах -
метод
getJson,
который выполняет GET-запрос с заголовком application/json -
метод
actingAs,
который выполняет аутентификацию пользователя в тестах -
метод
assertStatus,
который проверяет код ответа HTTP