キュウリで webrat を使用しています。ページにいるときにラジオ ボタンが既にチェックされているかどうかをテストしたいと思います。どうやってやるの ?それを行うことができるwebratのステップは見つかりませんでした。
8 に答える
input("#my_box").should be_checked
ID またはラベルを持つチェックボックスや、ラベルのテキストが変更される場所に依存できない場合があります。この場合have_selector
、webrat のメソッドを使用できます。
私の作業コードから(チェックボックスにIDがありません)。
response_body.should have_selector 'input[type=radio][checked=checked][value=information]'
説明: ドキュメントの本文にチェックされたラジオ ボタン ( input[type=radio]
) が含まれ、その値が「情報」である場合、テストは true を返します。
web_step チェックボックスをラジオボタンに変更しました
次のステップを web_steps.rb に追加します
Then /^the "([^"]*)" radio_button(?: within "([^"]*)")? should be checked$/ do |label, selector|
with_scope(selector) do
field_checked = find_field(label)['checked']
if field_checked.respond_to? :should
field_checked.should be_true
else
assert field_checked
end
end
end
そして、次のように記述して、指定されたraidoボタンがチェックされているかどうかを確認できます
And the "Bacon" radio_button within "div.radio_container" should be checked
web_steps.rb で組み込みのチェックボックス マッチャーを使用できます。
And the "Bacon" checkbox should be checked
ただし、対応するチェックボックス入力フィールドの ID と一致するラベルをチェックボックスに付ける必要があります。Rails の f.label ヘルパーは、最初の引数で ID として使用する文字列を受け取ります。フィールド名とチェックボックス名を含む文字列を作成する必要がある場合があります。
f.label "lunch_#{food_name}, food_name
f.radio_button :lunch, food_name
いずれにせよ、このディレクティブを使用して、HTML が正しいことを確認します。
Then show me the page
Jesper Rønn-Jensen の関数をラップ + レールで使用される名前を追加:
Then /^I should see that "([^"]*)" is checked from "([^"]*)"$/ do |value, name|
page.should have_selector "input[type='radio'][checked='checked'][value='#{value}'][name='#{name}']"
end
And the "Obvious choice" checkbox should be checked
ラジオボタンかもしれませんが、コードは機能します。そのテキストでラベル付けされたフィールドをチェックしているだけです。