2

HttpSessionListenerにテストしたいロジックがいくつかあります。Spring MVC と関連するテスト フレームワークなどを使用MockMvcしています。残念ながら、セッションが作成または破棄されたときに適切なリスナー メソッドが呼び出されるように、リスナーを初期化する方法は見つかりませんでした。

(この質問web.xmlで説明されているように)使用するのではなく、プログラムでリスナーを追加しようとしましたが、これはサーブレット 3.0 コンテナーで実行している場合に正常に機能します。しかし、Spring Test で実行すると、 methodがサポートされていないため、すべてがうまくいかず、例外がスローされます。MockServletContext addListener

統合テストを使用せずにそのようなリスナーをテストする方法はありますか?

4

1 に答える 1

4

サーブレット コンテナは、いつイベントを にディスパッチするかを決定しますHttpSessionListener。これは、セッションが作成または破棄された直後とは限りません。これはコンテナーの実装に依存するため、単体テストに依存することはできません。統合テストは進むべき道です。

HttpSessionListenerこれらの実装はいつでも単体テストできます

HttpSessionListener listener = new MyHttpSessionListener();
listener.sessionCreated(mockEvent);
listener.sessionDestroyed(mockEvent);

アプリケーションのコンテキスト外。

于 2013-08-30T15:06:21.927 に答える