0

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 は、別のデータ セットをロードするためにのみ使用されるオプションのパラメーターです。色、サイズ、タイプ、および価格はすべて、クラスで定義されたページ上のテキスト フィールドにマップされます。このようなことは可能ですか?

4

1 に答える 1