あなたの質問とJakubの回答に対するコメントに基づいて、あなたのサイトを通じて複数のユーザー旅行をカバーできる1つのステップを作成しようとしているようです。 SpecFlowは実際にはこのために設計されたものではなく、シナリオ/機能の構造を改善して改善する必要があることを示すものです。
あなたの質問に直接答えるために、私はステップ定義の特定の文字列の存在に基づいて論理値を推論する方法はないと思います。
このルートを維持したい場合は、元の例がおそらく最適です。
このアプローチをとっておらず、代わりにステップ定義を再構築してシナリオをまたがって再利用することをお勧めします。私は実際にあなたのソリューションに合ったサンプルのステップ定義を考えるのに苦労しています。
マルチステップのアプローチの例は次のようになります。
Given I have logged in as an existing user //1
And I have started my 6-step registration process //2
And I have filled in valid address values on step 1 //3
And I have left the fields blank on step 2 //4
... etc
When I save my registration
そして、あなたの手順は次のようになります。ログインページに
- ナビゲート、有効なユーザーとして
- ナビゲートしてログインステップ1に戻る
- 有効な入力フィールドに「次へ」を入力してください。
- 「次へ」をクリックしてください
各ステップが可能な限り独立していることを確認するだけで、他のステップに微妙に異なるステップ(新しいシナリオの場合)を置き換えることができます。
このアプローチでは、複雑なシナリオ(場合によっては非常に冗長性のあるシナリオ)が残る可能性がありますが、これは賢明で多くのものを1つのステップ定義にまとめるよりも優れたソリューションだと思います。おそらく読めないシナリオになるでしょうし、コードはおそらく読み込み/保守の苦痛になるでしょう。
この場合、ブール値フラグの意味は何ですか? 'two == false'のときに何かを2回行うことはどういう意味ですか? –
これはメークアップの例なので、おそらく最善ではありません。私は、文字列が存在するかどうかをフィーチャー・ファイルのステップで見つける良い方法がほしいです。 –
実際の例を見るとよいでしょう...シナリオを書く方法に問題があると私には思われます。 –