JSP の単体テストを行う小さなフレームワークを構築中です。これらの JSP にはいくつかのカスタム タグがありますが、それ以外は特別なものではありません。
利用可能な Java 単体テスト ソリューションは数多くありますが、私は別の本格的な JSP コンテナーを起動し、アプリケーションを展開し、TCP 接続を介して結果を収集する方法は使用しません。このケースの典型的な例は、Apache Cactus、Selenium などです。理想的には、可能な限り軽量な組み込みソリューションが必要です (ネットワーク接続が不要であることは良い兆候です)。また、さまざまなモック フレームワークも調べましたが、単体テスト中に JSP がコンパイル/実行されたときに、明確に機能する例が 1 つも見つかりませんでした。
私が見つけることができた最も近い解決策は、組み込みモードで Jetty を使用することでした。特に、 http: //docs.codehaus.org/display/JETTY/ServletTester に記載されているように、ServletTester クラスです。
残念ながら、上記の方法はサーブレットに対してのみ機能しますが、JSP については言及されていません。Jasper サーブレットをプログラムでフックする方法があると思いますが、2 つを統合するためだけに Jetty/Jasper の内部を 1 週間掘り下げる余裕はありません。無料で柔軟に構成できる限り、他の JSP/サーブレット コンテナーを使用してもかまいません。
誰かが同様のセットアップを持っていて、その経験を喜んで共有してくれれば幸いです。