我使用codeception为laravel应用程序编写验收测试。该应用程序是一个简单的CRUD应用程序,我的测试只是测试填写和提交应用程序的各种形式。我有一个工作测试创建一个新的资源但是当我尝试编辑同一个资源时,我得到以下错误:
这是创建资源的(工作)测试的样子:
$I = new AcceptanceTester($scenario);
$I->wantTo('Create Additional');
$I->login($I, 'username', 'password');
$I->click('Additional');
$I->seeInCurrentUrl('/admin/additional');
$I->click('Add Additional');
$I->seeInCurrentUrl('admin/additional/create');
$I->see('Add Additional');
//Fill out form fields
$I->fillField('name', 'Test Name');
$I->fillField('anchor', 'Additional Services in Cusco');
$I->selectOption('publish', '1');
$I->click('Save');
$I->click('Additional');
$I->see('Additional Test Name');
$I->cleanup($I);
编辑资源的测试几乎完全相同:
$I = new AcceptanceTester($scenario);
$I->wantTo('Edit Additional');
$I->login($I, 'username', 'password');
$I->click('Additional');
$I->seeInCurrentUrl('/admin/additional');
$I->click('Edit');
$I->seeInCurrentUrl('admin/additional/edit/1');
$I->see('Editing');
// Fill out form fields
$I->fillField('name', 'Additional Name Edited');
$I->fillField('anchor', 'Edited anchor');
$I->selectOption('publish', '1');
$I->click('Save');
$I->click('Additional');
$I->see('Additional Name Edited');
$I->cleanup($I);
然而,当我运行编辑测试时,我收到以下错误:
1) Failed to edit additional in AdditionalEditCept
Couldn't fill field "name","Additional Name Edited":
InvalidArgumentException: Unreachable field "name"
这似乎很简单 - " name"一定不能在那里。但当我看到源名称=" name"就像它是附加/创建视图一样。我应该指出,代码没有用
检测字段$I->see('name');
任一。以下是AdditionalEditCept.fail.html
中相关代码的含义<div class="form-group">
<label for="name">Additional Name:</label>
<input class="form-control" placeholder="" autocomplete="off" name="name" type="text" value="Edited Additional Services in Cusco" id="name">
</div>
看起来很简单; codeception需要通过CSS选择器查找html元素,我给它们一个CSS选择器。可能会发生什么?
答案 0 :(得分:0)
有点晚了,但如果我的HTML不有效,我也有类似的错误,例如
<div class="form-group">
<label for="name">Additional Name:</label>
<input name="name" type="text">
</div>
</div>