我正在通过SubmitForm()
函数测试表单,因为表单使用javascript循环遍历每个单独的项目。
示例:
$I->submitForm('#form', array(
'feet' => '1',
'inches' => '2',
), 'submit');
这样可以正常工作,但我遇到了文件上传输入问题。
$I->submitForm('#form', array(
'feet' => '1',
'inches' => '2',
'file' => ???
), 'submit');
我尝试发送一个数组来模仿$_FILES
数组,但这显然不是正确的方法。这可能吗?
答案 0 :(得分:6)
我也遇到过这个问题,我能看到它的唯一方法是手动填写字段并点击提交按钮。
例如
$I->fillField(['name' => 'name'], 'Test');
$I->attachFile('input[name=photo]', 'test.jpg');
$I->click('#formId button[type=submit]');
$I->seeCurrentRouteIs('route.index');
$I->see('Model has been updated.');
您可以将任何测试文件存储在Codeception tests / _data文件夹中。
这确实有效,但遗憾的是在我目前的情况下无法帮助我,因为我有一个动态填充各种选择元素的表单,因此我需要submitForm
,因为我无法手动selectOption
根据其他表单完成情况填充选项。