2016-05-31 9 views

Antwort

5

Es gibt derzeit keinen offiziellen Emulator von Google.

Ich verwende derzeit das Projekt Minio (https://www.minio.io/), um das Verhalten von Google Storage in der Entwicklung zu verspotten (Minio verwendet das Dateisystem als Speicher-Backend und bietet Kompatibilität mit S3 apiV2, das mit Google Storage kompatibel ist).

7

Google hat eine in-memory emulator, die Sie verwenden können (die meisten Kernfunktionen sind implementiert).

Sie benötigen com.google.cloud:google-cloud-nio auf Ihrem Test Classpath (:0.25.0-alpha derzeit). Dann können Sie die Storage Schnittstelle verwenden, die durch den In-Memory-Test-Helferdienst LocalStorageHelper implementiert wird.

Beispiel Nutzung:

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) 
    ); 
    }