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

Метод assertCheckboxChecked

Метод assertCheckboxChecked относится к классу WebTestCase и используется в функциональных тестах Symfony для проверки состояния чекбокса на странице. Первым параметром передаётся имя (или id) поля чекбокса, вторым - необязательное сообщение об ошибке. Метод ищет чекбокс в текущем ответе и утверждает, что он имеет атрибут checked.

Синтаксис

assertCheckboxChecked(string $fieldName, string $message = '')

Пример

Давайте создадим простую форму с чекбоксом и проверим, что он отмечен. Сначала создадим контроллер с формой:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class FormController extends AbstractController { #[Route('/form', name: 'form_show')] public function show(): Response { return $this->render('form/index.html.twig'); } } ?>

Теперь создадим Twig-шаблон с формой, в которой чекбокс отмечен по умолчанию:

<form method="post"> <input type="checkbox" name="agree" id="agree" checked> <button type="submit">Send</button> </form>

Напишем тест, который проверяет, что чекбокс отмечен:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class FormControllerTest extends WebTestCase { public function testCheckboxIsChecked(): void { $client = static::createClient(); $crawler = $client->request('GET', '/form'); $this->assertCheckboxChecked('agree'); } } ?>

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

OK (1 test, 1 assertion)

Пример

Давайте проверим, что чекбокс не отмечен, и посмотрим, как метод выбросит ошибку. Изменим шаблон, убрав атрибут checked:

<form method="post"> <input type="checkbox" name="agree" id="agree"> <button type="submit">Send</button> </form>

Теперь запустим тот же тест:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class FormControllerTest extends WebTestCase { public function testCheckboxIsChecked(): void { $client = static::createClient(); $crawler = $client->request('GET', '/form'); $this->assertCheckboxChecked('agree'); } } ?>

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

Failed asserting that the checkbox "agree" is checked.

Пример

Давайте используем метод с пользовательским сообщением об ошибке. Это помогает быстрее понять причину падения теста:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class FormControllerTest extends WebTestCase { public function testCheckboxWithMessage(): void { $client = static::createClient(); $crawler = $client->request('GET', '/form'); $this->assertCheckboxChecked('agree', 'Checkbox "agree" must be checked'); } } ?>

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

Failed asserting that the checkbox "agree" is checked: Checkbox "agree" must be checked

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

  • метод assertInputValueSame,
    который проверяет значение поля ввода
  • метод assertFormValue,
    который проверяет значение элемента формы
  • метод assertSelectorExists,
    который проверяет наличие элемента на странице
  • класс WebTestCase,
    который предоставляет методы для функционального тестирования
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить