【发布时间】:2015-03-08 03:29:28
【问题描述】:
我正在使用 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"
这似乎很简单——“名称”字段不能在那里。但是当我查看源名称 =“名称”时,就像附加/创建视图一样。我应该指出,codeception 没有检测到该字段
$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 选择器。这里会发生什么?
【问题讨论】:
-
这有点晚了。您是否尝试将输入名称
name更改为其他名称?
标签: laravel codeception