在Laravel测试期间取消选中复选框

时间:2015-08-20 20:40:21

标签: laravel testing integration-testing laravel-5.1

做这样的事情:

$this->visit('/path')
    ->check('field')
    ->push('Save');

无论初始状态如何,都会提交一个带有field复选框的表单。

如果在表单回复中预售票时,如何提交相同的表单并且未勾选复选框? Laravel的爬虫似乎没有提供这样做的方法。

我已尝试浏览基础Symfony\Component\DomCrawler\Form

$visit = $this->visit('/path');
$form = $visit->getForm('Save');
$form['field'] = 0;

但是会触发以下错误:

Input "unique_parcel" cannot take "0" as a value (possible values: 1).

1 个答案:

答案 0 :(得分:1)

如果您正在使用laravel/framework包的v5.1.10 +,则可以使用uncheck()方法。

$this->visit('/path')
     ->uncheck('field')
     ->push('Save');

否则,您可以使用untick()方法。

$form = $visit->getForm('Save');
$form['field']->untick();