[java] TestContainers를 사용하여 AWS 서비스 테스트하기

AWS 서비스는 많은 기업들이 사용하는 클라우드 컴퓨팅 플랫폼으로, 테스트 환경에서도 AWS 서비스를 테스트하고 검증해야할 필요가 있을 수 있습니다. 이를 위해 TestContainers를 사용하여 AWS 서비스를 테스트하는 방법에 대해 알아보겠습니다.

TestContainers란?

TestContainers는 테스트 환경에서 외부 리소스를 테스트하기 위해 사용되는 자바 라이브러리입니다. 이 라이브러리를 사용하면 컨테이너 기반의 환경을 구성하여 테스트에 필요한 데이터베이스, 메시지 큐, 웹 서버 등의 리소스를 간편하게 테스트할 수 있습니다.

AWS 서비스 테스트를 위한 TestContainers 사용하기

AWS 서비스를 테스트하기 위해 TestContainers를 사용하는 방법은 다음과 같습니다.

  1. 프로젝트에 TestContainers 종속성 추가하기

    <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>1.15.0</version>
    </dependency>
    
  2. AWS 서비스 컨테이너 시작하기

    AWSSecretsManagerContainer secretsManager = new AWSSecretsManagerContainer()
            .withSecretId("my-secret-id");
    
    secretsManager.start();
    

    위의 예제는 TestContainers를 사용하여 AWS Secrets Manager 서비스 컨테이너를 시작하는 방법입니다. withSecretId 메소드를 사용하여 시크릿 ID를 지정할 수 있습니다.

  3. 테스트 코드 작성하기

    @Test
    void testAWS() {
        AWSSecretsManager client = AWSSecretsManagerClientBuilder.standard()
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
                        secretsManager.getEndpointOverride(), "us-east-1"))
                .build();
    
        // AWS 서비스를 사용한 테스트 코드 작성하기
    }
    

    위의 예제 코드에서는 AWSSecretsManagerClientBuilder를 사용하여 AWS Secrets Manager 클라이언트를 생성하고, AWS 서비스를 사용하는 테스트 코드를 작성합니다.

  4. 컨테이너 종료하기

    secretsManager.stop();
    

    테스트가 완료되면 컨테이너를 종료하여 자원을 정리합니다.

참고 자료