public static AmazonS3 getS3Client() {
if (s3client == null) {
s3client = AmazonS3ClientBuilder.defaultClient();
}
return s3client;
}
如何使用Java编写用于AWS s3client的JUnit测试?
有不同的方法。
使用Mockito测试业务代码。通常,您将需要创建一个“驱动程序”-一个封装了S3的工作并公开一些实际上并不依赖于S3的接口的类。
使用LocalStack。该项目允许运行s3。在测试中,您可以创建一个docker容器/在没有docker的情况下将其作为一个进程运行。这将不再是单元测试(它是集成测试)。但是另一方面,您将可以使用与S3兼容的任何代码。
要在测试中运行docker,请考虑使用TestContainers项目