使用Laravel进行测试时如何勾选复选框

时间:2016-11-24 13:04:53

标签: php laravel laravel-5 integration-testing laravel-5.3

我想用Laravels内置的应用程序测试框架进行应用程序测试。 Due to the documentation您可以选​​中以下复选框:

// HTML
<input name="accept-terms" type="checkbox">

// PHP
$this
    ->visit('/foo/bar')
    ->check('accept-terms')

哪个工作正常。但是,有时我会有很多复选框。像:

// HTML
<input id="feature-1" name="features[]" type="checkbox" value="1">
<input id="feature-2" name="features[]" type="checkbox" value="2">
<input id="feature-3" name="features[]" type="checkbox" value="3">

// PHP
$this
    ->visit('/foo/bar')
    ->check('#feature-1')

我无法通过名称获取它们(如上所述),因此我尝试通过其ID获取它。但是,它似乎不受支持,因为我总是收到unreachable field错误。

1 个答案:

答案 0 :(得分:1)

有多个人提出相同的问题。我似乎无法找到如何完全您正在寻找的东西。另一种方法是提交复选框的值而不是检查它们。

$input = ['features' => [1,2]];

$this->visit('/foo/bar')
     ->submitForm('MyForm', $input);