外部 HTTP API を呼ぶクライアント側のコードも、Spring Boot ではよく出てきます。
対象コード:
RestClientまたはWebClientをアダプタとして閉じ込める- リトライ、タイムアウト、エラー変換をテストする
- コントローラやサービスから HTTP 詳細を分離する
- 外部 API から quote を取得する client
404をドメイン例外へ変換するMockRestServiceServerで外部 HTTP を差し替える
RestClient.BuilderMockRestServiceServer- HTTP エラーをアプリ用の例外へ変換する設計
- 外部 API 呼び出しは adapter に閉じ込める
- service は
QuoteClientの抽象的な結果だけを使う - 実ネットワークには出ないテストを先に作る