Ajax 要求を使用してサーバーからデータを継続的にポーリングする Web アプリケーションがあります。zombie.jsを使用して統合テストを実装したいと思います。
私がやろうとしているのは、Ajax ポーリング ループがサーバーからデータを受け取るまで待つことです。データは 20 秒後に受信されるはずなのでbrowser.wait(done, callback)
、データがそこにあるかどうかを確認するために使用しwaitFor
、最大タイムアウトを 1 分に設定します。
ただし、コールバックが false を返すbrowser.wait()
場合でも、常にほとんどすぐに戻ります。done
ゾンビ API のドキュメントで、次の内容を読みましたbrowser.wait()
。
... 永遠に待つことはできません。特に、繰り返し起動する可能性のあるタイマー (ページの状態のチェック、ロング ポーリングなど) の場合はそうではありません。
それが私が見た行動の理由だと思いますが、何が起こっているのかよくわかりません。ポーリング ループがサーバーからデータを受信するまで 1 分間待てないのはなぜですか? browser.wait()
繰り返し起動する可能性のあるタイマーを待てないのはなぜですか? テストを実装するには何をする必要がありますか?