gpt4 book ai didi

java - 如何模拟 S3 以在 Junit 中测试 Java 代码

转载 作者:行者123 更新时间:2023-11-30 06:08:30 31 4
gpt4 key购买 nike

我已经采取了引用表格here为了实现 S3 模拟以进行集成测试

我的困惑和我没有得到的部分是我如何在这里使用 docker ?我必须安装一些东西吗?

我刚刚在我的 Maven 中添加了以下代码

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-datapipeline</artifactId>
<version>1.11.295</version>
</dependency>

并且已经写在下面的类中

package com.amazonaws.lambda.demo;

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.AnonymousAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Builder;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import io.findify.s3mock.S3Mock;

public class S3Mock {

S3Mock api = new S3Mock.Builder().withPort(8001).withInMemoryBackend().build();
api.start();

AmazonS3Client client = new AmazonS3Client(new AnonymousAWSCredentials());
// use local API mock, not the AWS one
client.setEndpoint("http://127.0.0.1:8001");
client.createBucket("testbucket");
client.putObject("testbucket", "file/name", "contents");
}

但是我无法编译我的类本身。有人可以帮助我了解我还需要做什么才能完成这项工作。

最佳答案

我相信你已经错过了下面maven附带的S3Mock的依赖:

<dependency>
<groupId>io.findify</groupId>
<artifactId>s3mock_2.12</artifactId>
<version>0.2.5</version>
<scope>test</scope>
</dependency>

此外,我建议您将类从 S3Mock 重命名为 AmazonS3Mock 以避免 namespace 混淆

关于java - 如何模拟 S3 以在 Junit 中测试 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50753358/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com