スタブランナー Spring Cloud

スタブランナーは Spring Cloud と統合できます。

実際の例については、以下を参照してください。

スタブ化サービスの検出

Stub Runner Spring Cloud の最も重要な機能は、次のスタブを備えているという事実です。

  • DiscoveryClient

  • ReactorServiceInstanceLoadBalancer

つまり、Zookeeper、Consul、Eureka、その他のものを使用するかどうかに関係なく、テストではそれが必要ありません。依存関係の WireMock インスタンスを開始し、Feign を使用するたびに、バランスのとれた RestTemplate または DiscoveryClient を直接ロードし、実際の サービスディスカバリツールを呼び出す代わりにそれらのスタブ化されたサーバーを呼び出すようにアプリケーションに指示します。

テストプロファイルとサービスディスカバリ

統合テストでは、通常、検出サービス (Eureka など) も構成サーバーも呼び出したくないでしょう。このため、これらの機能を無効にする追加のテスト構成を作成します。

spring-cloud-commons [GitHub] (英語) には特定の制限があるため、これを実現するには、次の例 (Eureka の場合) のような静的ブロックでこれらのプロパティを無効にする必要があります。

    //Hack to work around https://github.com/spring-cloud/spring-cloud-commons/issues/156
    static {
        System.setProperty("eureka.client.enabled", "false");
        System.setProperty("spring.cloud.config.failFast", "false");
    }

追加の構成

stubrunner.idsToServiceIds: マップを使用すると、スタブの artifactId をアプリケーションの名前と照合できます。

デフォルトでは、すべてのサービス検出はスタブ化されます。これは、既存の DiscoveryClient があるかどうかに関係なく、その結果は無視されることを意味します。ただし、再利用したい場合は、stubrunner.cloud.delegate.enabled を true に設定すると、既存の DiscoveryClient 結果がスタブ化された結果とマージされます。

Stub Runner によって使用されるデフォルトの Maven 構成は、次のシステムプロパティを設定するか、対応する環境変数を設定することによって調整できます。

  • maven.repo.local: カスタム maven ローカルリポジトリの場所へのパス

  • org.apache.maven.user-settings: カスタム maven ユーザー設定の場所へのパス

  • org.apache.maven.global-settings: maven グローバル設定の場所へのパス