1

ユーザーがしばらく開いたままにしておくことができるページが1つあります。そして、javascriptはsetIntervalを使用して更新を行っています。どうすればテストできますか?

Scenario: Auto update dashboard
  When I am on the dashboard page
    Then I should see nothing on the page

  When someone added item
    Then I should see a new item on the page in few seconds

「誰かが追加したアイテム」を眠らせることはできますが、それは良い方法ですか?とにかく、「睡眠」はいくつかの理由で私には機能しません。

前もって感謝します。

4

1 に答える 1

0

Capybara の has_content は、いくつかのコンテンツが表示されるのを自動的に待機します (どのくらいかを決定できます)。したがって、次のようなもの (rspec 構文) を使用できます。

page.should have_content 'Update 1'
page.should have_content 'Update 2'
page.should have_content 'Update 3'

もちろん、その間の状態をテストすることは役立つかもしれませんが、これで十分かもしれません。

編集:間隔は非常に小さく、せいぜい数秒であると想定しています。そうしないと、テストの実行が非常に遅くなります。

于 2012-08-27T14:48:47.893 に答える