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

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

Метод submit класса KernelBrowser используется в функциональных тестах Symfony для отправки формы. Первым параметром передаётся объект формы Form, полученный из краулера, вторым - массив значений полей формы. Метод выполняет запрос к приложению и возвращает объект Crawler с результатом ответа.

Синтаксис

public function submit(Form $form, array $values = []): Crawler

Пример

Давайте создадим форму и отправим её через метод submit:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testSubmitForm(): void { $client = static::createClient(); $crawler = $client->request('GET', '/article/create'); $form = $crawler->selectButton('Save')->form(); $crawler = $client->submit($form, [ 'title' => 'abcde', 'content' => 'article', ]); $this->assertResponseIsSuccessful(); $this->assertSelectorTextContains('h1', 'abcde'); } } ?>

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

"Test passed"

Пример

Давайте отправим форму с пустыми значениями и проверим ошибку валидации:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testSubmitEmptyForm(): void { $client = static::createClient(); $crawler = $client->request('GET', '/article/create'); $form = $crawler->selectButton('Save')->form(); $crawler = $client->submit($form, [ 'title' => '', 'content' => '', ]); $this->assertSelectorExists('.form-error'); } } ?>

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

"Test passed"

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

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