0

Cucumber、Capybara、WebDriver、SitePrism、および Faker を使用して自動テストを作成しています。私はこれが初めてで、助けが必要です。

次の手順があります..

Given (/^I have created a new active product$/) do
@page = AdminProductCreationPage.new
@page.should be_displayed
@page.producttitle.set Faker::Name.title
@page.product_sku.set Faker::Number.number(8)
click @page.product_save
@page.should have_growl text: 'Save Successful.'
end

When (/^I navigate to that product detail page) do
 pending
end

Then (/^All the data should match that which was initially entered$/) do
 pending
end

config/env_config.rb で、空のハッシュを設定しました...

Before do
# Empty container for easily sharing data between step definitions

@verify = {}
end

ここで、ステップで Faker によって生成された値をハッシュして、Givenステップで適切に保存されたことを検証できるようにしますWhen。また、以下のスクリプトで faker によって生成された値を検索フィールドに入力したいと考えています。

@page.producttitle.set Faker::Name.title
  1. faker によって生成された値を @verify has にプッシュするにはどうすればよいですか?
  2. その値を取得してテキスト フィールドに挿入するにはどうすればよいですか?
  3. その値をプルして、保存値がフェイカーによって生成された値と等しいことを確認するにはどうすればよいですか?
4

1 に答える 1

1

1. faker によって生成された値を @verify has にプッシュするにはどうすればよいですか?

ハッシュは、キーと値のペアの単なる辞書であり、 で設定できますhash[key] = value

キーは文字列にすることができます @verify['new_product_name'] = Faker::Name.title

キーはシンボルにすることもできます@verify[:new_product_name] = Faker::Name.title

生成した値はステップ定義内で複数回使用される可能性があるため (1 回は @verify ハッシュに格納するため、もう 1 回はフィールド値を設定するために)、個人的には最初にローカル変数に格納し、必要な場所でそれを参照することを好みます。 .

new_product_title = Faker::Name.title
@verify[:new_product_title] = new_product_title

2. その値を取得してテキスト フィールドに挿入するにはどうすればよいですか?

キーで値を参照できます。したがって、値をハッシュに保存した後、これを行うことができます @page.producttitle.set @verify[:new_product_name]

または、上記のようにローカル変数に保存した場合は、これを行うだけです

@page.producttitle.set new_product_name

3. その値をプルして、保存値がフェイカーによって生成された値と等しいことを確認するにはどうすればよいですか?

同様に、フィールド値がハッシュに格納した値と等しいと断言できます。例は@page.producttitle.value.should == @verify[:new_product_name]

これをすべてまとめると:

Given (/^I have created a new active product$/) do
  @page = AdminProductCreationPage.new
  @page.should be_displayed

  # Create a new title
  new_product_title = Faker::Name.title

  # Store the title in the hash for verification
  @verify[:new_product_title] = new_product_title

  # Set the input value to our new title
  @page.producttitle.set new_product_title

  @page.product_sku.set Faker::Number.number(8)
  click @page.product_save
  @page.should have_growl text: 'Save Successful.'
end

When (/^I navigate to that product detail page) do
   pending
end

Then (/^All the data should match that which was initially entered$/) do
  @page.producttitle.value.should == @verify[:new_product_title]
end
于 2014-10-09T16:23:13.427 に答える