0

Jersey Client を使用してリクエストを行う API クライアントのテストを作成しようとしています。

事前にキャプチャされた json 文字列を返すために、特定のサーバー応答を偽造したかったのです。

例えば。

client().resource("/recommendations").queryParam("username", karan").get(Recommendation.class)

ファイルに保存したjson文字列に基づいて適切なクラスを返す必要があります。

どうすればそれを偽造できますか?または、実際のjsonを返すために偽のサーバーをインスタンス化し、ジャージークライアントにそれを機能させる必要がありますか?

ありがとう

4

1 に答える 1

1

一般的な解決策の 1 つは、 EasyMockMockitoなどのテスト フレームワークを使用して、特定のメソッド呼び出しを想定し、定義済みのデータ (json など) を返すモックの Jersey クライアントを作成することです。モックは、実際の Jersey クライアントの代わりに API クライアントに挿入されます。

一般に、自分でモックを作成することでフレームワークを回避することもできます。つまり、クライアントをサブクラス化し、呼び出すメソッドをオーバーライドして、事前定義されたデータを返します。次に、モックをコンストラクター引数として API クライアントに渡します。フレームワークを正当化するかどうかは、必要と予想されるモックの量に依存します。これは、外部依存関係の数によって部分的に決定されます。

于 2013-11-09T17:13:13.160 に答える