page-object gem を使用して populate_page_with data_for を入力するフォームがあります。次のように定義されます。
def add_fruit(data = {})
populate_page_with data_for(:new_fruit, data)
add_fruit_submit
end
次に、この方法でステップでメソッドを呼び出します。
on(AddFruitPage).add_fruit
私のymlファイルは次のようになります:
new_fruit:
color: red
size: large
type: apple
price: 0.75
...
another_fruit
color: orange
size: medium
type: orange
price: 0.99
...
私のステップで次のようなことを行うことで、これらの各フィールドを上書きできることを知っています。
When(^/I add a banana$/) do
on(AddFruitPage).add_fruit('color' => 'yellow', 'size' => 'small', 'type' => 'banana')
end
別の果物のデータは既に yml ファイルにあるため、メソッドを使用するときに各値を指定するのではなく、読み込むデータをメソッドに伝えるパラメータを使用できますか? 何かのようなもの:
def add_fruit(data = {})
if(data['type'] == 'another')
populate_page_with data_for(:new_fruit, data)
else
populate_page_with data_for(:another_fruit, data)
end
end
そして、このように呼びますか?
on(AddFruitPage).add_fruit('type' => 'another')
Type は、別のデータ セットをロードするためにのみ使用されるオプションのパラメーターです。色、サイズ、タイプ、および価格はすべて、クラスで定義されたページ上のテキスト フィールドにマップされます。このようなことは可能ですか?