0

私は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="&#x2713;" /><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>

誰かが私に与えることができるどんな助けや洞察も、私は大いに感謝します。

前もって感謝します

4

2 に答える 2