Как смоделировать S3 для тестирования кода Java в Junit - PullRequest
0 голосов
/ 08 июня 2018

Я взял справочную форму здесь , чтобы реализовать S3 mocking для интеграционного тестирования

Моя путаница и та часть, которую я не получил, заключается в том, как я могу использовать 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");
}

Но я не могусоставить сам мой класс.Может ли какое-то тело помочь мне понять, что еще мне нужно сделать, чтобы сделать эту работу.

1 Ответ

0 голосов
/ 08 июня 2018

Я полагаю, что вы пропустили зависимость для S3Mock , которая поставляется ниже maven:

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

Также я предлагаю вам переименовать ваш класс с S3Mock на что-то вроде AmazonS3Mock только для того, чтобы избежать путаницы в пространстве имен

...