小编Chr*_*phe的帖子

如何使用 Symfony 爬虫组件和 PHPUnit 测试表单提交的错误值?

当您通过浏览器使用该应用程序时,您发送了一个错误的值,系统会检查表单中的错误,如果出现问题(在本例中就是这样),它会重定向一条默认错误消息,该消息写在有罪的错误消息下方场地。

这是我试图用我的测试用例断言的行为,但我遇到了我没有预料到的 \InvalidArgumentException 。

我将 symfony/phpunit-bridge 与 phpunit/phpunit v8.5.23 和 symfony/dom-crawler v5.3.7 一起使用。这是它的示例:

public function testPayloadNotRespectingFieldLimits(): void
{
    $client = static::createClient();

    /** @var SomeRepository $repo */
    $repo = self::getContainer()->get(SomeRepository::class);
    $countEntries = $repo->count([]);
    
    $crawler = $client->request(
        'GET',
        '/route/to/form/add'
    );
    $this->assertResponseIsSuccessful(); // Goes ok.

    $form = $crawler->filter('[type=submit]')->form(); // It does retrieve my form node.
    
    // This is where it's not working.
    $form->setValues([
        'some[name]' => 'Someokvalue',
        'some[color]' => 'SomeNOTOKValue', // It is a ChoiceType with limited values, where 'SomeNOTOKValue' does not belong. This …
Run Code Online (Sandbox Code Playgroud)

php forms functional-testing symfony domcrawler

5
推荐指数
1
解决办法
913
查看次数

标签 统计

domcrawler ×1

forms ×1

functional-testing ×1

php ×1

symfony ×1