我一直在构建一个 rails4 应用程序并通过黄瓜和水豚进行测试,但遇到了障碍。我正在为用户创建和用户编辑进行标准测试。
用户创建测试运行没有任何问题,但是在运行编辑用户的测试时,我无法让水豚实际将新值填充到字段中。new 和 edit 的表单是相同的(我包含两个部分相同的 _form),并且它在 new 但不能编辑时再次正常工作。
黄瓜新用户测试:
When I fill in a User with:
| First Name | Rufus |
| Last Name | Firefly |
| Email | rfirefly@fake.com |
| Role(S) | System Admin |
黄瓜编辑用户测试:
When I fill in a User with:
| First Name | Otis |
| Last Name | Driftwood |
| Email | otis@fake.com |
对应方法:
When /^(?:|I) fill in (?:a|an|the) (.+) with:$/ do |obj, fields|
attrs = {}
fields.rows_hash.each do |name, value|
fill_in(name, with: value) unless name =~ /\((?:R|S)\)$/
choose(value) if name =~ /\(R\)$/
select(value) if name =~ /\(S\)$/
end
end
呈现的html表单:
<form accept-charset="UTF-8" action="/members/1" class="edit_user" id="edit_user_1" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /></div><div class='field'>
<label for="user_first_name">First Name</label>
<input id="user_first_name" name="user[first_name]" type="text" value="Ronald" />
</div>
<div class='field'>
<label for="user_last_name">Last Name</label>
<input id="user_last_name" name="user[last_name]" type="text" value="Kornblow" />
</div>
<div class='field'>
<label for="user_email">Email</label>
<input id="user_email" name="user[email]" type="email" value="kornblow@fake.com" />
</div>
<div class='field'>
<label for="user_password">Password</label>
<input id="user_password" name="user[password]" type="password" />
</div>
... omitted fields (not required) ...
<input name="commit" type="submit" value="Update User" />
</form>
任何人都可以给我的任何帮助或见解,我将不胜感激。
提前致谢