Метод forward класса KernelBrowser
Метод forward класса KernelBrowser
переходит на следующую страницу в истории браузера.
Он аналогичен нажатию кнопки «Вперёд» в обычном
браузере и работает без повторной отправки запроса.
Метод не принимает параметров и возвращает объект
Crawler для дальнейшего анализа страницы.
Синтаксис
$crawler = $client->forward();
Пример
Давайте создадим тест, в котором клиент сначала переходит на страницу, затем возвращается назад и снова идёт вперёд:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testForward(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$client->back();
$crawler = $client->forward();
$this->assertSelectorTextContains('h1', 'Article');
}
}
?>
Результат выполнения кода:
"test passed"
Пример
Давайте перейдём вперёд после возврата назад и проверим адрес текущей страницы:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class UserControllerTest extends WebTestCase
{
public function testForwardUri(): void
{
$client = static::createClient();
$client->request('GET', '/user');
$client->back();
$client->forward();
$res = $client->getRequest()->getUri();
echo $res;
}
}
?>
Результат выполнения кода:
"http://localhost/user"
Смотрите также
-
метод
back,
который переходит назад в истории браузера -
метод
reload,
который перезагружает текущую страницу -
метод
request,
который выполняет запрос к приложению -
класс
KernelBrowser,
который эмулирует браузер в тестах