5

私は現在、サーバー側で Sinatra Ruby を使用し、クライアント側で Backbone.js、jQuery、jQuery UI を使用して、1 ページの JavaScript アプリケーションを開発しています。アプリケーションの主な目的は、顧客がさまざまな種類のアイテムを表示/編集できるようにすることです。各アイテム ビューは多かれ少なかれ複雑なフォームです。

すべてが正しく機能することを確認するために、次のことを計画しています。

  • QUnit を使用したユニティ テスト
  • 機能/統合テスト

この場合の統合テストには、どのフレームワーク/ツールをお勧めしますか? 私は Selenium から始めましたが、あまり好きではありませんでした。私は PhantomJS と CasperJS を見始めたところですが、ナビゲーション、リンクのクリックなどの基本的なことにはかなり適しているようです...

アドバイスは?

4

1 に答える 1

1

Selenium の嫌いなところは言われませんでしたが、JavaScript には自信があるので、CasperJSをメイン ツールとして使用することをお勧めします。1 ページの Web アプリでうまく機能し、独自のテスト ツールが付属しています。waitネストされた句を使用する場合、コードはまだ少し複雑になることがあります。各テストでやりすぎないようにすることでそれに対処し、それでも複雑な場合はリファクタリングします。また、テスト用の設計も忘れないでください。セレクターが非常に複雑な場合は、<span id="xxxx">...</span>その周りに を追加することを検討してください。そうすれば、テストを直接実行できます。

CasperJS はPhantomJSSlimerJSの両方で使用できます。私の好みは、現在SlimerJSです。

  • PhantomJS 1.x は古い WebKit (Safari 5.1 および Chrome 13 に相当) にとどまっているため、最新の機能をテストするのはイライラします。
  • SlimerJS は、Gecko エンジンで動作するか、インストール済みの Firefox のバージョンで直接動作します。これにより、追加のプラグイン、セキュリティ証明書などを使用して Firefox プロファイルを構成できます。
  • SlimerJS は JavaScript で記述されているため、必要に応じて簡単にハッキングできます。

PhantomJS 2.0 がリリースされたら (できれば 2013 年末頃)、またはサイトが最近の HTML5 API に依存していない場合は、CasperJS を 2 回実行して、2 つのカバレッジを得ることができます。(ところで、PhantomJS は当然ヘッドレスです。SlimerJSは Linux または Mac のみのXvfbを使用する必要があります。)

Seleniumがさらに提供するのは、他のブラウザー、特に IE を制御できることです。(もちろん、IE の場合は Windows マシンを実行する必要があります。) Selenium は、SlimerJS と同様に、Xvfb をヘッドレスにする必要があります (Windows を除く)。(ところで、サポートされているブラウザーの Selenium ドキュメントは何年も更新されていませんが、各ブラウザーのそれ以降のバージョンには、少なくともそこに示されているのと同じサポートがあると思います。)

于 2013-10-31T01:36:09.317 に答える