В целях тестирования я хотел бы высмеять облачное хранилище, потому что оно замедляет тесты.Есть ли эмулятор Google Cloud Storage?
Есть ли эмулятор Google Cloud Storage?
В целях тестирования я хотел бы высмеять облачное хранилище, потому что оно замедляет тесты.Есть ли эмулятор Google Cloud Storage?
Есть ли эмулятор Google Cloud Storage?
На данный момент не существует официального эмулятора, предоставляемого Google.
В настоящее время я использую проект Minio (https://www.minio.io/) для издевательского поведения Google Storage в разработке (Minio использует файловую систему в качестве хранилища и обеспечивает совместимость с S3 apiV2, совместимым с Google Storage).
Google имеет in-memory emulator, который вы можете использовать (большинство основных функций реализовано).
Вам необходимо com.google.cloud:google-cloud-nio
на вашем тестовом пути (:0.25.0-alpha
). Затем вы можете использовать/вставить интерфейс Storage
, реализованный в тестовой службе в памяти LocalStorageHelper
.
Пример использования:
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)
);
}