0

私は複数のモジュールを持つ Java アプリケーションを持っています - (GWT-)RPC サービス、perf-library(remote-client私のチームが書いた/所有しているすべての Java コード)。にperf-libraryは Spring AOP アスペクト関連のコードが含まれており、主に傍受されたメソッド ログをデータ ストアにプッシュするために使用されます。現在、perf-library実際にキューを維持し、ログをデータ ストアにプッシュするジョブを処理する別のリモート クライアントに依存しています。したがって、ある意味ではperf-library、タスクをリモートクライアントに委任するだけです。ビジネス ロジック コードは、AOP ロジックを持つ傍受されたメソッドを呼び出すため、リモート クライアントに依存します。明らかに、単体テスト内からリモートクライアントに接続したくありません。メソッドの実装をモックする必要があると思いますpush()リモートクライアントに接続します。私が理解できないのは、ビジネス ロジック コード パッケージの単体テストにモック実装を使用する方法です。

物事を明確にするために、私はこのようなモジュールを持っています -

  • RPC service module- 例: メソッドlogin()が傍受された。
  • perf-library- アスペクト (のようなメソッドをインターセプトするlogin()) と呼び出す実装がありますremote-client
  • remote-client- いくつかのデータストアにデータをプッシュ

ここで、RPC サービス メソッドの単体テストを作成するために、push()perf-library の内部にある のモック実装を取得するにはどうすればよいですか。たとえば、2 つのクラス (1 つは本番用、もう 1 つはテスト用) によって実装されるインターフェイスLogClient( method を持つ) があるとします。push()この Test 実装を perf-library 自体の単体テストに使用できますが、RPC 単体テストでそれを使用するにはどうすればよいですか。私はSpringが初めてなので、これがSpringなどで簡単にできるかどうかはわかりません。どんな助けでもいいでしょう。

注: Bean と DI の維持には Spring を使用しています。

4

1 に答える 1

2

正確な方法はわかりませんが、Mockitoは良い選択です。
詳細については、このリンクを確認してください。

于 2012-09-12T09:38:29.063 に答える