非 JVM 環境における Artifactory のスタブを使用したプロバイダー契約のテスト
このフローでは、次のことを前提としています。
API プロデューサーと API コンシューマーは非 JVM アプリケーションです。
契約定義は YAML で記述されます。
スタブストレージは Artifactory または Nexus です。
Spring Cloud Contract Docker (SCC Docker) および Spring Cloud Contract スタブランナー Docker (SCC スタブランナー Docker) のイメージを使用します。
Spring Cloud Contract を Docker とともに使用する方法の詳細については、こちらを参照してください。
ここ (英語) では、多言語環境で Spring Cloud Contract を使用する方法に関するブログ投稿を読むことができます。
ここ [GitHub] (英語) では、プロデューサーとコンシューマーの両方として Spring Cloud Contract を使用する NodeJS アプリケーションのサンプルを見つけることができます。
プロデューサーの流れ
大まかに言うと、プロデューサーは次のようにします。
契約定義を書き込みます (たとえば、YAML で)。
ビルドツールを次のように設定します。
指定されたポート上でモック化されたサービスを使用してアプリケーションを開始します。
モックが不可能な場合は、インフラストラクチャをセットアップし、ステートフルな方法でテストを定義できます。
Spring Cloud Contract Docker イメージを実行し、実行中のアプリケーションのポートを環境変数として渡します。SCC Docker のイメージ:
接続されたボリュームからテストを生成します。
実行中のアプリケーションに対してテストを実行します。
テストが完了すると、スタブはスタブストレージサイト (Artifactory や Git など) にアップロードされます。
次の UML 図は、プロデューサーのフローを示しています。