Метод assertFormValue
Метод assertFormValue относится к секции тестирования Symfony
и проверяет, что указанное поле формы содержит ожидаемое значение.
Первым параметром передаётся CSS-селектор формы, вторым - имя поля,
третьим - ожидаемое значение. Если значение поля не совпадает
с ожидаемым, тест завершается ошибкой.
Синтаксис
assertFormValue(string $formSelector, string $fieldName, string $value)
Пример
Давайте создадим контроллер с формой и проверим значение
поля title через метод assertFormValue:
<?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/form', name: 'article_form')]
public function form(): Response
{
return $this->render('article/form.html.twig');
}
}
?>
Теперь создадим Twig-шаблон с формой:
<form name="article" method="post">
<input type="text" name="article[title]" value="abcde">
<button type="submit">Send</button>
</form>
Напишем тест, который проверяет значение поля формы:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testFormValue(): void
{
$client = static::createClient();
$crawler = $client->request('GET', '/article/form');
$this->assertFormValue('form[name="article"]', 'article[title]', 'abcde');
}
}
?>
Результат выполнения теста:
OK (1 test, 1 assertion)
Пример
Давайте проверим, что поле формы содержит другое значение, и убедимся, что тест завершится ошибкой:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testFormValueFails(): void
{
$client = static::createClient();
$crawler = $client->request('GET', '/article/form');
$this->assertFormValue('form[name="article"]', 'article[title]', 'hello');
}
}
?>
Результат выполнения теста:
Failed asserting that two strings are equal.
Expected :'hello'
Actual :'abcde'
Смотрите также
-
метод
assertInputValueSame,
который проверяет значение поля ввода -
метод
assertCheckboxChecked,
который проверяет, что чекбокс отмечен -
метод
assertSelectorExists,
который проверяет наличие элемента на странице -
класс
WebTestCase,
который используется для функциональных тестов