Метод assertPageTitleContains
Метод assertPageTitleContains из класса WebTestCase
проверяет, что заголовок текущей страницы содержит
указанную подстроку. Первым параметром передаётся
искомая строка. Если заголовок не содержит её,
тест завершается ошибкой. Метод удобен, когда нужно
убедиться, что страница отдала правильный заголовок
в теге title.
Синтаксис
assertPageTitleContains(string $expectedTitle)
Пример
Давайте создадим контроллер, который отдаёт страницу
с заголовком 'Article page', и проверим его:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
return $this->render('article/index.html.twig');
}
}
?>
Создадим Twig-шаблон для этой страницы:
<!DOCTYPE html>
<html>
<head>
<title>Article page</title>
</head>
<body>
<p>hello</p>
</body>
</html>
Теперь напишем тест, который проверяет,
что заголовок содержит подстроку 'Article':
<?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', '/article');
$this->assertPageTitleContains('Article');
}
}
?>
Результат выполнения теста:
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();
$client->request('GET', '/article');
$this->assertPageTitleContains('User');
}
}
?>
Результат выполнения теста:
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
Смотрите также
-
метод
assertPageTitleSame,
который проверяет точное совпадение заголовка -
метод
createClient,
который создаёт клиент для тестирования -
метод
assertSelectorTextContains,
который проверяет текст внутри селектора -
метод
assertResponseIsSuccessful,
который проверяет успешный ответ сервера