2016-04-11 9 views
1

私はマイクロサービスを扱っており、そのための統合テストを作成したいと思います。 私のマイクロサービスはポート番号で動作します。 9000、9001のポートをテストしたいのですが、内部では9001で動作するサービスを内部的に呼び出しています。接続が拒否されるエラーが発生し、9001に達する特定の呼び出しを擬似したいとします。 私はplay-mockwswiremockを試しました。統合テストでの外部Webサービスコールの模擬再生2.4.X

答えて

1

rest-client-driverをご覧ください。これにより、HTTP経由で呼び出すことのできる外部サービスをモックできます。

libraryDependencies += "com.github.rest-driver" % "rest-client-driver" % "1.1.44 

は、あなたのテストクラスに以下を追加します。

は、依存関係を追加します。テストメソッドごとに

@org.junit.Rule 
public ClientDriverRule clientDriver = new ClientDriverRule(9001); 

、あなたはその後、clientDriverに期待を設定することができます - @Rule注釈は、テストの間にクライアントドライバをリセットするの面倒を見ます。

@Test 
public void testFoo() { 
    clientDriver.addExpectation(onRequestTo("/service/echo") 
           .withMethod(Method.POST) 
           .withBody("foo", 
             "text/plain"), 
           giveResponse("bar")); 

    // ...the rest of your test 
} 
+0

私はこの「予期しない要求:」エラーを受け取りました。要求が全く同じであることを要求しているためです。 (例:ヘッダー、コンテンツタイプ、接続: "キープアライブ"、ユーザーエージェント: "AHC/1.0"、承諾: "*/*") –

+0

'ClientDriverRequest'はビルダーパターンに従います。メソッドを使用してリクエストのすべての定型文を適用し、次にテストメソッドに詳細を追加します。 –

+0

この不要なデータを要望どおりに減らす方法など、参考資料はありますか? –

関連する問題