2009-06-09 12 views
14

私はJSF用の実用的なユニットテストフレームワークを探しています。JSFユニットテスト

私はJSFUnitについて知っていますが、これは私にとっては非常に実用的ではありません。プロジェクトに約10個のJARを追加し、それを実行するために他の多くのフープにジャンプする必要があります。

私は、プラットフォームとクライアントユニットをシミュレートする必要があるため、Webアプリケーションをテストすることは困難です。しかし、より良い方法がありますか?

+1

JSFでどのフレームワークを使用しているのですか、JSF rawを使用していますか? – Drew

+0

私は、AJAX機能のためにrichFacesを使用しており、レンダリングのためにfaceletsを使用しています。また、JSF RI 1.2を使用して実装しています。私のアプリケーションサーバーでは、glassfish v2を使用しています。 –

+1

一部のレスポンダーはSeleniumについて言及しています。 Seleniumは単体テストツールではありません。組み立てられ展開されたアプリケーションの統合テスト用です。ユニットテストとは、環境から持ち出されたコードの個々の部分をテストすることを意味します。 – pcjuzer

答えて

9

Seleniumまたは別のツールを使用して統合テストを行ったことはありますか? Seleniumでは、ブラウザで直接テストを記録して実行することができます。 Selenium Remote Controlを使用して、複数のブラウザおよび複数のプラットフォームでテストを実行することもできます。

単体テストの作成は優れていますが、プレゼンテーション層のコードを単体テストするのではなく、機能的な統合テストを作成するために多くの機能を提供することがあります。

+0

これは非常に興味深い選択肢のようです。私はそれをさらに調べます。 –

3

私が現在作業中のプロジェクトでは、セレンを使用して手伝っています。我々は実際にこれらのセレンテストを書くのに多くの時間を費やしましたが、UIがそれほど変わっておらず、わずかな投資利益であなたの努力を倍増させるだけなので価値がほとんどないことがわかりました。

セレンのもう1つの問題は、コードをデプロイする必要があるということです。つまり、ユニットテストフレームワーク(例えば、maven)でうまく動作しません。

あなたのマネージドBeanの単体テストを書くのは非常に貴重です。

+0

統合テストとしてmavenでSeleniumを使用できます – IAdapter

2

あなたはJSFUnitによって提供さjsfunitwar Antタスクまたは代わりにMavenプラグインを見て撮影したことがありますか?両方とも、テストする.warファイルの生成の複雑さを大幅に軽減します。現在のプロジェクトでJSFUnitを使用しており、ホワイトボックスとブラックボックスのテスト機能の組み合わせが非常に強力であることがわかります。 JSFUnitはHtmlUnitを使用しているため、生成されたHTMLを非常に簡単かつ効果的に調べることができます。逆に内部JSFバッキングBeanの状態を確認することもできます。私は、JSFUnitテストを私のContinuous Integrationプロセスに組み込むことができ、その結果に非常に満足しています。


1

セレンが表面的で、jsfunitは内側です。プロジェクトが単純でない場合は、jsfunitを使用することをお勧めします。チームメンバはjsfマネージドビーン名などを変更することができるので、jsfunitを使用してそれを把握することができます。

0

私はPaul on Seleniumと一緒にセットアップして作業を開始するのがとても簡単です。私はFirefoxでSelenium IDEを使用し、そのレベルでいくつかのカスタマイズを行い、Java JUnitテストなどの他のプラットフォームにエクスポートすることができます。 selenium-server.jarをダウンロードして起動し、既存のEclipse Maven POMドライバプロジェクトにselenium-java-client-driverを追加するのはかなり簡単でした。 Eclipseで同じエクスポートされたJUnitテストを起動します。私は主に、基本的なSelenium IDEがサポートしていなかったループのためにJavaを使いたいと思っていました。

私もプロジェクトのためにJSFユニットを設定しましたが、設定に時間がかかります... JSFUnitのようなコンテナテストでは、WARを再構築し、コンテナに再デプロイしてから実行する必要があります。 Eclipseまたはブラウザを介して。小さな変更をすばやく試すには、時間がかかります。もちろん、JSFUnitを使用すると、JSFSessionなどのすべての内部構造にアクセスできるため、必要なテストの細分性に依存します。

誰かがJSFUnitテストの変更を迅速に処理して実行する方法を知っていれば興味があります。間違いなくセレンテストは、その点でJUnitテストに似ています。