3

Cucumber/Watir テストに取り組んで、イメージ ローテータ/サイクルが機能していることをテストします。私の戦略は、css クラスによってローテーターでアクティブな画像を取得し、それを変数にダンプすることです。次に、[次へ] ボタンをクリックして、css クラスによってローテーター内のアクティブな画像 (新しい画像になっているはずです) を取得し、それを 2 番目の変数にダンプします。次に、img_rot_1 != img_rot_2 と言って、テストで true または false を返すようにする必要があります。これは私が問題を抱えていた部分です。

私はRubyに慣れていないので、単純なものが欠けているかもしれません。これがテストです。

require 'step_definition/setup'

test_setup = Wsetup.new 'http://loginurl', 'uname', 'pass' # browser object created here as # test_setup.b
img_rot_1 = String.new
img_rot_2 = String.new 

When /^I click the next image button$/ do
  test_setup.do_login
  test_setup.b.goto('http://psu.dev1.fayze2.com/node/56')
  img_rot_1  = test_setup.b.li(:class => 'flex-active-slide').img.src
  test_setup.b.link(:class => 'flex-next').click
end

Then /^the rotator should move to the next image$/ do
  img_rot_2  = test_setup.b.li(:class => 'flex-active-slide').img.src
  img_rot_1 != img_rot_2
end

img_rot_1 != img_rot_2 と img_rot_1 == img_rot_2 の両方が合格 - だから私は何が欠けているのですか?

4

2 に答える 2

1

あるステップで作成された変数に別のステップからアクセスする場合は、インスタンス変数を使用する必要があると思います。

何かのようなもの:

When /^I click the next image button$/ do
  # more code here
  @img_rot_1  = test_setup.b.li(:class => 'flex-active-slide').img.src
end

Then /^the rotator should move to the next image$/ do
  img_rot_2  = test_setup.b.li(:class => 'flex-active-slide').img.src
  @img_rot_1.should_not == img_rot_2
end
于 2012-10-29T14:13:49.917 に答える
0

ステップが失敗するにはThen、false と評価されるステートメントだけでなく、失敗するアサーションが必要です。

RSpec の期待値を使用していると仮定すると、次のようなものが必要になります。

img_rot_1.should_not eq(img_rot_2)
于 2012-10-29T13:30:51.960 に答える