9

私は次のようなシナリオを持っています:

  1. 私がこのページに行くとすれば
  2. きゅうりをタイプするとき
  3. そして私はクリックします
  4. 次に、テキストが表示されます
  5. そして、私は線を見るべきではありません

このシナリオを実行すると、5つのステップすべてが実行されます。しかし、4番目のステップをスキップして(テキストが表示されるはずです)、5番目のステップを実行したいと思います。

提案をお願いします。前もって感謝します。:)

4

2 に答える 2

14

TL; DR-それをしないでください-あなたは(おそらく)それを間違えています。そして、あなたはそれを(簡単に)行うことはできません。Aslakが書いたように(キュウリの主な作成者の1人):

ステップは次の結果をもたらす可能性があります。

  • 未定義(一致するstepdefなし)
  • 保留中(PendingExceptionをスローする一致するstepdef)
  • 合格(何もスローしない一致するstepdef)
  • 失敗しました(PendingExceptionではない例外をスローする一致するstepdef)
  • スキップされました(例外(未定義、保留中、または失敗)をスローしたステップに続くステップ)

あなたが求めているのは、新しい種類の結果です-無視されます。IgnoredExceptionをスローすることで実装できます。これは、スキップを次のように変更する必要があることを意味します:(例外がIgnoredExceptionでない限り、例外(未定義、保留中、または失敗)をスローしたステップに続くステップ)

私はこれが好きかどうかわかりません。必要以上に複雑に聞こえます。あなたはすでに何かが間違っているという必要な情報を持っています-あなたのステップは失敗するか、保留になります。次の手順を実行し続けることの価値がわかりません。それでも、失敗/保留中のステップを実装する必要があります。

「ここでやるべきことがある」ということを思い出す限り、キュウリがどんな仕事をする必要があるのか​​を教えてくれるのはそれほど難しいことではないと思います...

Aslak

全体の議論はここにあります:http://comments.gmane.org/gmane.comp.programming.tools.cucumber/10146

于 2012-12-21T10:29:48.237 に答える
6

環境に基づいて条件付きで手順をスキップする必要がありました。以前nextは手順をスキップしていました。これがあなたがやりたいことをする方法の例です。

Then /^I should see the text/$ do
    next if @environment == 'no text'

    ...
       <The actual step definition>
    ...
end
于 2014-06-12T18:27:33.730 に答える