Azureサービスのテストが「ローカルだけ」で完結する時代へ

Azureを使ったSpring Bootアプリケーションの開発において、ユニットテストは長年の課題だった。実際のAzureリソースをプロビジョニングしなければテストできないとなると、コストも時間もかかる。そこで注目されるのが、Spring Cloud AzureとDockerを組み合わせたテスト手法だ。

MicrosoftのAzure SDK Blogが公式に解説したこのアプローチでは、本物のAzure環境を一切使わずに、ローカルのDockerコンテナ上でAzureサービスをエミュレートしてテストが実行できる。

Spring Cloud Azureとは

Spring Cloud Azureは、SpringアプリケーションからAzureサービスを簡単に利用できるようにするOSSプロジェクトだ。Azure Storage、Service Bus、Event Hubsなど主要なAzureサービスとのシームレスな統合を提供しており、Springの自動設定(Auto Configuration)の仕組みに乗っかった形で動作する。

DockerをユニットテストのAzure代替として使う

今回紹介されているアプローチのポイントは、Azurite(Azureストレージエミュレーター)などのDockerイメージを使うことにある。spring-cloud-azure-docker-compose という依存ライブラリを追加するだけで、テスト実行時にDockerコンテナが自動起動し、テスト完了後に自動停止する。

Azure Blob Storageのテスト例

Maven(pom.xml)への依存追加は以下の3点が基本となる:


元記事: Writing Azure service-related unit tests with Docker using Spring Cloud Azure