РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1090 of 1361 menu

Метод back класса KernelBrowser

Метод back класса KernelBrowser выполняет возврат на предыдущую страницу, имитируя нажатие кнопки «назад» в браузере. Метод возвращает объект Crawler, позволяющий анализировать содержимое предыдущей страницы. Он не принимает параметров и использует историю запросов, накопленную браузером во время теста.

Синтаксис

public function back(): Crawler

Пример

Давайте создадим контроллер с двумя страницами и проверим возврат на предыдущую страницу:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/first', name: 'article_first')] public function first(): Response { return new Response('first page'); } #[Route('/second', name: 'article_second')] public function second(): Response { return new Response('second page'); } } ?>

Теперь напишем тест, который последовательно открывает две страницы, а затем возвращается на первую с помощью метода back:

<?php namespace AppTestsController; use SymfonyBundleFrameworkBundleTestWebTestCase; class ArticleControllerTest extends WebTestCase { public function testBack(): void { $client = static::createClient(); $client->request('GET', '/first'); $client->request('GET', '/second'); $crawler = $client->back(); $this->assertStringContainsString('first page', $crawler->text()); } } ?>

Результат выполнения теста:

"OK (1 test, 1 assertion)"

Пример

Давайте проверим, что после возврата назад доступен адрес предыдущей страницы:

<?php namespace AppTestsController; use SymfonyBundleFrameworkBundleTestWebTestCase; class ArticleControllerTest extends WebTestCase { public function testBackUri(): void { $client = static::createClient(); $client->request('GET', '/first'); $client->request('GET', '/second'); $client->back(); $this->assertSame('/first', $client->getRequest()->getPathInfo()); } } ?>

Результат выполнения теста:

"OK (1 test, 1 assertion)"

Смотрите также

  • класс KernelBrowser,
    который эмулирует браузер в тестах
  • метод request,
    который выполняет HTTP-запрос
  • метод forward,
    который выполняет переход вперёд по истории
  • метод reload,
    который перезагружает текущую страницу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить