Класс WebTestCase
Класс WebTestCase расширяет KernelTestCase и предназначен для тестирования HTTP-запросов и ответов приложения. Он предоставляет статический метод createClient, который создаёт объект KernelBrowser для выполнения запросов к приложению. Также класс содержит множество assert-методов для проверки ответов, селекторов, форм, писем и других аспектов работы веб-приложения.
Синтаксис
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class MyTest extends WebTestCase
{
public function testSomething(): void
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
$this->assertResponseIsSuccessful();
}
}
Пример
Давайте создадим простой тест, который проверяет успешность ответа главной страницы:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/');
$this->assertResponseIsSuccessful();
}
}
?>
Результат выполнения теста:
OK (1 test, 1 assertion)
Пример
Давайте проверим, что на странице присутствует определённый текст:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
$this->assertResponseIsSuccessful();
$this->assertSelectorTextContains('h1', 'hello');
}
}
?>
Результат выполнения теста:
OK (1 test, 2 assertions)
Пример
Давайте выполним POST-запрос и проверим статус ответа:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testCreate(): void
{
$client = static::createClient();
$client->request('POST', '/article', [
'title' => 'abcde',
]);
$this->assertResponseStatusCodeSame(201);
}
}
?>
Результат выполнения теста:
OK (1 test, 1 assertion)
Смотрите также
-
метод
createClient,
который создаёт клиент для выполнения запросов -
класс
KernelBrowser,
который выполняет запросы к ядру приложения -
метод
assertResponseIsSuccessful,
который проверяет успешность ответа -
класс
KernelTestCase,
который тестирует ядро приложения