私はrails4アプリを構築し、キュウリとカピバラでテストを実行してきましたが、問題が発生しました. ユーザー作成とユーザー編集の標準テストを行っています。
ユーザー作成テストは問題なく実行されましたが、ユーザーを編集するためのテストを実行すると、カピバラが実際にフィールドに新しい値を入力できません。フォームは new と edit で同じです (同じ _form 部分を両方に含めています)。 new では問題なく動作しますが、edit では動作しません。
キュウリの新規ユーザー テスト:
When I fill in a User with:
| First Name | Rufus |
| Last Name | Firefly |
| Email | rfirefly@fake.com |
| Role(S) | System Admin |
Cucumber Edit User テスト:
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>
誰かが私に与えることができるどんな助けや洞察も、私は大いに感謝します。
前もって感謝します