Тестирование — неотъемлемая часть приложений 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');
}
}