1

パスワード管理ページのテスト スイートを作成中です。シナリオでは、大多数は実際にパスワードを変更すべきではありませんが、変更する場合もあります。@changePasswordオプションでこれらのシナリオを実行するかどうかを指定できるように、タグを使用しました。

私が遭遇する問題は、可能であれば重複するステップを書かないようにすることです。

簡略化されたサンプル シナリオ:

@changePassword
Scenario: successful change
  Given the Manage Password page is loaded
  And a new password is generated
  When the old password is entered
  And the new password is entered
  And the confirm password is entered
  And the OK button is clicked
  Then the password has changed

Scenario: failed change (missing confirm)
  Given the Manage Password page is loaded
  And a new password is generated
  When the old password is entered
  And the new password is entered
  And the OK button is clicked
  Then the password change fails

ステップの大部分は 2 つのバージョン間で同じですが、私が懸念している主な相違点はAnd a new password is generatedステップです。最初のシナリオでは、新しいパスワードをユーザーのパスワードとして保存したいと考えています。2 番目のシナリオでは、新しいパスワードを最後に破棄します。

次のようなもの: (疑似コード)

And /^a new password is generated$/ do
  old password = user's password
  new password = generate random new password
  confirm password = new password
  if tag @changePassword is present
    user's password is set as the new password
  end
end

これを可能にする方法はありますか?2 番目のステップなどを書くこともできますAnd a new password to be saved is generatedが、読みやすさと技術に詳しくない同僚にとっては、同じステップを使用する方が良いオプションです。(私は過去に、ユーザーがまったく同じことを達成する同様のプロセスを説明するために異なるフレーズを使用して混乱を引き起こしていることを発見しました。可能であれば、職場での混乱を回避しようとしています。)

補足: Ruby で (Watir を使用して) Cucumber を使用すると、違いが生じる場合 (そうですか?)

4

1 に答える 1

2

これは醜い解決策ですが、タグ付きフックを使用して変数を設定し、その変数の値に基づいて保存する/保存しないメソッドの if ステートメントを使用できますか?

于 2012-05-22T16:08:16.063 に答える