Новое в Symfony 5.2: Тестирование утверждений формы

Тестирование — неотъемлемая часть приложений Symfony. Вот почему мы продвигаем тестирование в документации и предоставляем специальные утилиты для тестирования, такие как мост PhpUnit. В Symfony 5.2 улучшили наш список настраиваемых тестовых утверждений новыми утверждениями для форм Symfony.

В предыдущих версиях Symfony для тестирования форм Symfony требовалось иметь дело с переменными представления формы и делать такие вещи:

$view = $this->factory->create(TestedType::class, $formData)->createView();

$this->assertArrayHasKey('custom_var', $view->vars);
$this->assertSame('expected value', $view->vars['custom_var']);

Теперь вы можете использовать методы assertFormValue() и assertCheckboxChecked() для проверки значений формы, не работая с низкоуровневыми деталями, такими как переменные представления:

namespace App\Tests\Controller;

use App\Entity\Post;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class SomeTest extends WebTestCase
{
    public function testIndex(): void
    {
        $client = static::createClient();
        $crawler = $client->request('GET', '/some-page');

        $client->submitForm('Save', [
            'activateMembership' => 'on',
            'trialPeriod' => '7',
        ]);

        self::assertFormValue('#form', 'trialPeriod', '7');
        self::assertCheckboxChecked('activateMembership');
    }
}