php エディター Zimo が今日紹介するのは、application-go BDD-java でサードパーティ サービスをシミュレートする方法です。ソフトウェア開発中はサードパーティのサービスとやり取りする必要があることがよくありますが、テスト段階ではこれらのサービスに直接アクセスできない場合があります。この問題を解決するには、application-go と BDD-java を使用してサードパーティ サービスの動作をシミュレートし、より効果的なテストを行うことができます。続いて、具体的な実装方法を見ていきましょう!
最近BDD(Gherkin Restassuredを使用)の研究を始めました。サードパーティのサービスをシミュレートする必要があります。以下は私の使用例です。
rpm を生成し、その rpm を仮想マシンにデプロイする CI パイプラインが実行されています。 この VM 上で BDD を実行します (現在、サービス A とサービス B は同じ VM にデプロイされています)
Service-B に依存しなくても済むように Service-B をモックする方法はありますか? 「はい」の場合、最善のアプローチは何ですか。
goLang httptest を試して単体テスト レベルでサービスをモックしました。 ただし、BDD を使用してパイプラインで rpm を作成した後にシミュレーションする方法。
ありがとうございます
サービス A が Web や RPC 経由ではなく内部的にサービス B を呼び出す場合、依存関係注入を使用してサービス B の「false」「バージョン」を注入できます。 (これには必ずしも依存関係注入フレームワークが含まれるわけではないことに注意してください。コンストラクターベースおよびプロパティベースの注入も有効です)。サービス B にインターフェイスがない場合は、インターフェイスを抽出し、シン アダプターを使用して、環境に応じて本物のサービスまたは偽のサービスを呼び出します。
シーンがサービス A の UI または API とのみ対話する限り、シーンを変更する必要はありません。
実際のコードの代わりに偽のコードをデプロイメントに使用するように、ビルド パイプラインの動作方法を変更する必要があります。
これを実行時に実行することもでき、アダプターに関連するサービスを呼び出すことで、偽物から本物に切り替えることができます。切り替えまたはデプロイメントは、環境変数またはビルド パラメーターによってトリガーできます。
ただし、テスト サービスを運用環境に展開しないように注意してください。
継続的デプロイメントを使用する場合、理想的には、ビルド パイプラインの最後のステップでデプロイし、実際のサービスとの対話をテストする必要があります。何らかの理由でこれが唯一の作業方法である場合でも、役立つ可能性のあることがいくつかあります。
以上がapplication-go + BDD-java でサードパーティ サービスをシミュレートするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。