ポートレットについては何も知りませんが、これで終わりです。
portletUnitがあります。
portletUnit は、servletUnit がサーブレット コンテナーの外側でサーブレットをテストするために使用されるのと同様に、ポートレット コンテナーの外側で JSR-168 ポートレットをテストするために使用されるテスト フレームワークです。このプロジェクトは、servletUnit の機能をポートレットにマップするように設計されており、servletUnit 自体が portletUnit の基盤を提供します。
PortletUnit および Spring Portlet: Checking form validation errorsを含む、いくつかの関連情報は、彼のProject PortletUnit ブログにあります。
portletUnit でテストする場合、フォーム エラーがあったかどうかを確認する方法が明確ではありません。幸いなことに、 のレンダリング リスナー機能を使用すると
PortletRunner
、バリデータ エラーをチェックする簡単な方法があります。
2007 年に Nils-Helge Garli Hegvik によって書かれた、Testing Portlets with Jetty, Pluto and JWebUnitというタイトルのブログ記事もあります。
Johannes Brodwall のブログの Jetty および JWebUnit との統合テストに関する優れた記事を思い出して、私が作成した組み込みの jetty-pluto セットアップを使用するために彼のアプローチを拡張したいと思いました。これは非常に簡単であることが判明しました。
最後に、Spring Framework documentation 10.2 Unit testing .
この
org.springframework.mock.web.portlet
パッケージには、Spring のポートレット MVC フレームワークでの使用を対象とした一連のポートレット API モック オブジェクトが含まれています。
[...]org.springframework.test.web
パッケージには、Spring MVCオブジェクトModelAndViewAssert
を扱う単体テスト用のテスト フレームワーク (JUnit 4+、TestNG など) と組み合わせて使用できる が含まれています。ModelAndView
[...] Spring MVC コントローラーをテストする
には、
の 、 など
ModelAndViewAssert
と組み合わせて
使用します。MockHttpServletRequest
MockHttpSession
org.springframework.mock.web package
これは、John Ferguson Smart によって書かれた
Unit testing your Spring-MVC applicationsというタイトルの関連記事です。
このフレームワークの優れた点の 1 つは、そのテスト可能性です。Spring-MVC では、任意のカスタム バリデーター (フィールドとフォームの検証用) とプロパティ エディター (テキスト フィールドを特定の Java 型に変換するため) は非常に簡単にテストできます。POJO が分離されているかのようにテストできます。
Spring-MVC には、コントローラーを心ゆくまでテストするために (少し練習すれば) 使用できるモック オブジェクトの完全なセットも付属しています。たとえば、 や などのクラスを使用して、HTTP 要求および応答オブジェクトをシミュレートでき
MockHttpServletRequest
ます
MockHttpServletResponse
。Controller
これは、 s を通常の Java クラスとしてインスタンス化できるという事実によっても容易になります。たとえば、クライアントの詳細レコードを更新するページのコントローラー クラスをテストしているとします。これは、次のように非常に簡単に行うことができます。
public class UpdateClientTest {
//
// Prepare your request
//
request.setMethod("POST");
request.setParameter("id", "100");
request.setParameter("firstName", "Jane");
request.setParameter("lastName", "Doe");
//
// Invoke the controller
//
controller = new ChoosePeriodController();
ModelAndView mav = controller.handleRequest(request, response);
//
// Inject any service objects you need
//
controller.setClientService(clientService);
...
//
// Inspect the results
//
assert mav != null;
assertEquals("displayClient",mav.getViewName());
Client client = (Client) mav.getModel().get("client");
assertEquals("Jane",client.getFirstName());
assertEquals("Doe",client.getLastName());
...
}
...