テストの目的で、テストを遅くするためCloud Storageを模擬したいと思います。Google Cloud Storageエミュレータはありますか?
Google Cloud Storageエミュレータはありますか?
テストの目的で、テストを遅くするためCloud Storageを模擬したいと思います。Google Cloud Storageエミュレータはありますか?
Google Cloud Storageエミュレータはありますか?
Googleが当面提供する公式エミュレータはありません。
私は現在、開発中のGoogle Storageの動作を嘲笑するプロジェクトMinio(https://www.minio.io/)を使用しています(Minioはファイルシステムをストレージバックエンドとして使用し、Google Storageと互換性のあるS3 apiV2との互換性を提供します)。
Googleにはin-memory emulatorがあります(ほとんどのコア機能が実装されています)。
テストクラスパス(現在:0.25.0-alpha
)にcom.google.cloud:google-cloud-nio
が必要です。次に、メモリ内のLocalStorageHelper
テストヘルパーサービスによって実装されたStorage
インターフェイスを使用/注入できます。
使用例:
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.contrib.nio.testing.LocalStorageHelper;
@Test
public void exampleInMemoryGoogleStorageTest() {
Storage storage = LocalStorageHelper.getOptions().getService();
final String blobPath = "test/path/foo.txt";
final String testBucketName = "test-bucket";
BlobInfo blobInfo = BlobInfo.newBuilder(
BlobId.of(testBucketName, blobPath)
).build();
storage.create(blobInfo, "randomContent".getBytes(StandardCharsets.UTF_8));
Iterable<Blob> allBlobsIter = storage.list(testBucketName).getValues();
// expect to find the blob we saved when iterating over bucket blobs
assertTrue(
StreamSupport.stream(allBlobsIter.spliterator(), false)
.map(BlobInfo::getName)
.anyMatch(blobPath::equals)
);
}