0

だから私はステーキを使い始めました。ステーキはカピバラを使い、カピバラはセレンを使います。

したがって、テストを多くの小さなit句に分割し、それぞれが小さな機能をテストすることは、RSpecの優れた方法であると聞いています。ただし、テストごとに同じ手順が繰り返されるため、テストの実行にかかる時間が大幅に長くなります。

いくつかのajax機能をテストしているとしましょう。私はそれをテストしたい:

  • 特定のリンクをクリックするとフォームが表示されます
  • そのフォームに無効な入力を送信すると、エラーメッセージが表示されます
  • 有効な入力などを送信すると、確認メッセージが表示されます。

しかし、これらのそれぞれを独自のテストケースに分割した場合、Seleniumは最初からやり直す必要があります。同じページを3回ロードし、リンクをクリックしてフォームを3回表示する必要があります。無駄。

私ができるようにしたいのは、ブラウザーの状態を保持する一連のテストを指定することです。これにより、各テストは前のテストが中断したところから続行されます。それは可能ですか?

4

1 に答える 1

1

可能です。1つの方法は、Capybaraのvisitメソッドをオーバーライドし、最後のURLを追跡し、変更された場合にのみ再訪問することです。

次のようなもの:

module Capybara
  alias original_visit visit
  def visit(url)
    original_visit url if url != $last_url
    $last_url = url
  end
end

しかし、あなたが本当に何をしているのかを知っている場合にのみ、それを行うべきです...

于 2011-04-01T15:16:03.603 に答える