2009-12-04 28 views
6

Javaサーブレットのテストのベストプラクティスは何ですか?ところで、これは私がいくつかの難しさを持っているトピックです:どのようにあなたのJavaサーブレットを単体テストしますか?Javaサーブレットの単体テストをどのように記述しますか?

+0

この近くの複製もご覧ください: http://stackoverflow.com/questions/53532/unit-testing-servlets –

答えて

17

最も重要なことは、がサーブレットの動作に直接関係しないサーブレットのすべてを試してみることです。

これはすぐにコア機能のテストをlotに簡単にします。これにより、すぐにコンテナに結び付けられず、コンテナに接続してインターフェイスするという痛みを伴わずにテスト可能な一連のコンポーネントが用意されます。アーキテクチャとコンポーネントの適切な階層化にいくつかの考えが与えられるべきである。表示可能なフラグメントではなくオブジェクト構造を返すコンポーネント。直接HttpRequestsを使用せず、マーシャリング構造などを要求します。

大部分のテスト(システム構造と複雑さに依存します)は正常にテストできます。サーブレットに焦点を当てたテストは、サニティチェック機能に(例えば)Apache Cactusを使用して追加することができます。それ以外では、Seleniumなどのブラウザー内のソリューションを調べることもできます。

(注:このアプローチは、ほとんどのGUI環境のために動作します - 例えばスイング)

+0

"2011/08/05 - ジャカルタサボテンは退職しました。 – Raedwald

2

今日はまさに同じ質問が尋ねられましたhere

Jakarta cactusは、サーブレットのためのユニットテストフレームワークです。

+0

このジャカルタのサボテンプロジェクトを知っておきましょう。しかし、私はベストプラクティスが何であるかも知りたいと思う。 チップをありがとう! –

+0

"2011/08/05 - ジャカルタサボテンは退職しました。" – Raedwald

2

私たちが正常にやっていることはモック要求および応答でサーブレットをロードしています。 Springを使用している場合は、実際にはMockHttpRequestとMockHttpResponseを提供するので、これは特に簡単です。

アプリケーションでレイヤーが明確に定義されていると仮定すると、残りは簡単です。基礎となるサービス/ DAOレイヤーはモックに置き換えることができるので、サーブレットが指定されたリクエストオブジェクトに対して何をしているのかを確認し、応答を正しく記述するだけです。

関連する問題