0

現在、GWT アプリでサービス層 (すべての *Impl.java クラス) を単体テストしようとしています。問題は、コード内に、Httpsession によって提供されるオブジェクトを対象とする依存関係があることです。実際には、User オブジェクト (現在ログインしているユーザー) を httpSession に格納しています。

HttpSession (*Impl.java クラス) からそれを取得するために、私はこれを使用しています:

ユーザー user = ServiceUtil.getUser(getThreadLocalRequest().getSession());

単体テスト コードからこのオブジェクトをモックするにはどうすればよいですか?

どうもありがとう、

4

2 に答える 2

1

JUnitテストケースでは、次のように書くことができます

    HttpSession session = new MockHttpSession();

これはどこMockHttpSessionですか

ユーザー オブジェクトをこのセッションに入れてから、テスト ケースを実行できます。

于 2012-10-08T10:43:08.030 に答える
0

アプリケーションの構造を変更して、サービス層がセッション (コンテキストに依存しない) などに依存しないようにすることをお勧めしますが、代わりに、何らかの種類のユーザー オブジェクトを必要とするメソッドが (パラメーターを介して、またはしかしながら) 注入されるようにします。したがって、実際には、HTTP 要求への応答、ユーザーのログイン、セッションへのユーザー オブジェクトの配置などを処理し、サービス レイヤー メソッドを呼び出すだけの非常に薄いプレゼンテーション レイヤー (またはそれを呼び出すこともできます) を含めます。

そうすれば、単体テストでユーザー オブジェクトをモックし、それをサービス レイヤーに渡すことができ、モック フレームワークは必要ありません。

于 2011-05-17T09:13:09.963 に答える