12

wait_until の使用方法がかなり明確である場合 (ネイティブの Webdriver メソッドを使用してテストを作成するときにこのようなメソッドを使用しました)、新しい同期メソッドは使用しません (申し訳ありません:))。なぜwait_untilが非推奨であるかについてのテーマを読み、それに関する記事を読み、メソッドの説明を含むドキュメントを読み、説明が存在するコードも読みました。しかし、この方法を正確に使用する方法の例やチュートリアルは見つかりませんでした。

誰でも、私(そしておそらく他の誰か)がこの方法の使用方法を見て学ぶことができるいくつかのケースを提供してください

たとえば、

expect(actual).to equal(expected)

タイムアウトが経過した後にのみ負の例外を取得するには、同期メソッドをどこに「配置」する必要がありますか?

UPD: 興味のある方は、次のリンクをご覧ください。

http://www.elabs.se/blog/53-why-wait_until-was-removed-from-capybara

https://github.com/jnicklas/capybara/blob/master/lib/capybara/node/base.rb#L44

4

2 に答える 2

3

あなたを助けるかもしれないこのヘルパーメソッドを見てください。https://gist.github.com/10c41024510ee9f235e0にあります

# spec/support/capybara_helpers.rb

module CapybaraHelpers
  def wait_for_whizboo
    start = Time.now
    while true
      break if [check for whizboo here, e.g. with page.evaluate_script]
      if Time.now > start + 5.seconds
        fail "Whizboo didn't happen."
      end
      sleep 0.1
    end
  end
end

RSpec.configure do |config|
  config.include CapybaraHelpers, type: :request
end
于 2013-01-29T17:22:38.000 に答える