如何用假GCS铲斗对Spring Boot进行集成测试



我有一个应用程序,它通过弹簧引导连接到GCS铲斗。我想在这里用假的gcs服务器做一个集成测试:https://github.com/fsouza/fake-gcs-server。但我不知道怎么做。

看看testcontainers,它允许您旋转测试所需的基础设施(比如数据库,或者在您的情况下是一个假的gcs服务器(

首先添加必要的maven依赖项:

<properties>
<testcontainers.version>1.16.4</testcontainers.version>
</properties>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>

然后使用GenericContainer创建GCS容器,指定docker映像名称和版本:

@Testcontainers
class GcsIntegrationTest {
// will be shared between test methods
@Container
private static final GenericContainer<?> GCS_CONTAINER = new GenericContainer<>(DockerImageName.parse("fsouza/fake-gcs-server:1.33.1"))
.withExposedPorts(4443)
.withClasspathResourceMapping("gcs/data", "/data", BindMode.READ_ONLY)
@Test
void test() {
assertTrue(GCS_CONTAINER.isRunning());
// more assertions
}
}

"withClasspathResourceMapping"部分可用于指定要装载在测试容器中的一些测试数据:https://github.com/fsouza/fake-gcs-server#preload-数据

最新更新