RSpecとカピバラでリクエストテストを書いています。フォーム フィールド名を期待値にマップするハッシュがあります。
各フォーム フィールドに期待値があることを簡単に確認するにはどうすればよいですか?
これまでのところ、私はこれを行っていますが、複雑で維持できません。この場合、2 種類の入力コントロール (選択ボックスとその他) のみを検討しています。
expected_data = {
"address" => "Fake st 123",
"city" => "Somewhere",
"email" => "whoknows@example.com",
"gender" => "Male",
"state" => "FL",
}
select_boxes = ["gender", "state"]
# check for the select boxes
expected_data.select {|k,v| select_boxes.include?(k)}.each do |name, expected_value|
page.has_select?(name, :selected_value => expected_value).should == true
end
# check for the input fields
expected_data.reject {|k,v| select_boxes.include?(k)}.values.each do |expected_value|
page.should have_css("input[value=\"#{expected_value}\"]")
end
これを1行で行う宝石や何かがありますか?