2012-08-28 9 views
5

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

すべては右の私が何を計画しています動作することを確認するには:QUnitを使用して

  • 単一のテスト
  • 機能/統合はあなたが統合テストのためにお勧めしますどのようなフレームワーク/ツール

をテストこの場合 ?私はセレンを使い始めましたが、あまり好きではありませんでした。私はちょうどPhantomJSとCasperJSを見始めると、彼らはナビゲーションのような基本的なもの、リンクをクリックするとかなりいいようです。

あなたの助言は何ですか?

答えて

1

あなたはセレンについて気に入っていないとは言いませんでしたが、私はあなたがJavaScriptに自信を持っていると推測していますので、CasperJSをメインツールとして使用することをお勧めします。 1ページのWebアプリケーションでうまく動作し、独自のテストツールが付属しています。ネストされたwait句を使用すると、コードは少しでも複雑になることがあります。あなたが各テストであまりにも多くのことをやろうとしないようにして、それからやはり複雑なリファクタリングをして、それに対処してください。テスト用の設計を忘れないでください:セレクタがひどく複雑な場合は、<span id="xxxx">...</span>を追加することを検討してください。

PhantomJSSlimerJSの両方でCasperJSを使用できます。 PhantomJS 1.xのがそのように任意のより現代的な機能をテストすることはイライラさせられる、(サファリ5.1とChrome 13に相当)古いのWebKitに貼り付ける

  • :として私の好みは、現在SlimerJSためのものです。
  • SlimerJSはGeckoエンジンでも、インストールしたFirefoxでも直接動作します。これにより、余分なプラグインやセキュリティ証明書などを使ってFirefoxプロファイルを設定することができます。
  • SlimerJSはJavaScriptで書かれているため、必要に応じて簡単にハックすることができます。

一度(うまくいけば、2013年の終わり頃)に出てくる、またはあなたのサイトには、最近のHTML5 APIをに依存していない場合、あなたは二重のカバレッジを得るために、二回CasperJSを実行することができます2.0をPhantomJS。 (実際にはPhantomJSはヘッドレスでSlimerJSはLinuxまたはMacのみのXvfbを使用する必要があります)

は特別なIE、特に他のブラウザを制御できます。 SlimerJSのように、SeleniumはXvfbをヘッドレスにする必要があります(Windowsを除く)。 (BTW、Seleniumのドキュメントon supported browsersは年齢が更新されていませんが、各ブラウザの新しいバージョンでは少なくとも同じサポートがあると仮定しています)

+0

Seleniumに対する最初の点は速度です。それは非常に遅いです。 – user337620

+0

@ user337620私のSeleniumスクリプトはネットワークアクセスによって支配されていますので、起動時を除いて遅く感じることはありませんでした。私はちょうどあなたの質問が今年ではなく、昨年の8月であることに気づいたあなたは何と一緒に行きましたか?そしてそれに満足していますか? –

+0

私はCasperJSをPhantomJSで使用しました。私はSlimerJSも見ていきます。 – user337620

関連する問題