通过集成测试勾选复选框
Ticking a checkbox with integration testing
我有一个 laravel 5.2 应用程序,在视图中我有 3 个复选框
<input type="checkbox" name="roles[]" value="5">
<input type="checkbox" name="roles[]" value="11">
<input type="checkbox" name="roles[]" value="7">
我对该页面进行了测试
$this->visit(route('staff.create'))
->type($name = str_random(), 'name')
->type($phone = str_random(), 'phone')
->set('roles', 5) // <--- what to do here
->press('Save')
->seePageIs(route('staff.index'))
->see($name);
一切正常,期待设置角色。检查测试助手不允许您传递值 ( $this->check($elementName)
)。我以为它会是 'set' 但那也失败了。
如何检查我在测试中的第一个复选框?
我检查了 InteractsWithPages
特性,我认为它不支持开箱即用的输入数组。您可以尝试将 set() 替换为:
->storeInput('roles', 5);
或
->storeInput('roles', [ 5 ]);
如果这还不够——您可以在您的测试用例中覆盖此方法。
我有一个 laravel 5.2 应用程序,在视图中我有 3 个复选框
<input type="checkbox" name="roles[]" value="5">
<input type="checkbox" name="roles[]" value="11">
<input type="checkbox" name="roles[]" value="7">
我对该页面进行了测试
$this->visit(route('staff.create'))
->type($name = str_random(), 'name')
->type($phone = str_random(), 'phone')
->set('roles', 5) // <--- what to do here
->press('Save')
->seePageIs(route('staff.index'))
->see($name);
一切正常,期待设置角色。检查测试助手不允许您传递值 ( $this->check($elementName)
)。我以为它会是 'set' 但那也失败了。
如何检查我在测试中的第一个复选框?
我检查了 InteractsWithPages
特性,我认为它不支持开箱即用的输入数组。您可以尝试将 set() 替换为:
->storeInput('roles', 5);
或
->storeInput('roles', [ 5 ]);
如果这还不够——您可以在您的测试用例中覆盖此方法。