0

angular.js アプリケーションのテストに Behat を使用したいと考えています。しかし、私が経験している問題は、ルートに移動してリンクをクリックしたいときに、Behat はテンプレートがいつレンダリングされるかを知らないため、コンテンツが利用できないときにクリックすることがあります. Behat を使用して angular.js アプリケーションをテストした経験のある人はいますか?

または、現在のルートのテンプレートのレンダリングが完了した場合、javascript でチェックインする方法を知っている人はいますか? angular.js がページの読み込み時にアプリケーションをブートストラップするかどうかを確認する方法は?

angular.js に ngScenario があることは知っていますが、Behat を使用したい理由は次のとおりです。

  • 人間が読める Gherkin 言語
  • 私たちのバックエンドは Symfony で書かれているので、両方のテストに同じフレームワークを使用できます。

敬具、

大安

4

1 に答える 1

0

mink api には、waitjavascript アプリケーションが「何か」の処理を完了するまで、PHP コンテキストの実行を一時停止できるメソッドがあります。ドキュメントに簡単な例があります: http://mink.behat.org/#basic-browser-interaction

$session->wait(5000,
    "$('.suggestions-results').children().length > 0"
);

提供されている例では、提案結果のリストが入力されるまで、PHP コンテキストは最大 5 秒間一時停止されます。ルートのレンダリングがいつ終了したかを確認する同等の JavaScript 式を確認する必要があります。

過去に jQuery 式の使用で問題が発生したことがあり、getElementById.

また、javascript を実行できる mink ドライバーを使用する必要があります。ZombieDriverコマンドラインで実行されるように使用します。あなたに合った選択肢がいくつかあります。

http://mink.behat.org/#different-browsers-drivers

于 2013-07-29T21:09:28.813 に答える