[개발일지] 230510 Playtika testcontainers

2023. 5. 10. 23:53·성장이야기/TIL

오늘 새로 배운 내용

기존 개발환경 properties에서 설정해 준 redis 설정을 변경하고 테스트를 돌렸더니 테스트가 실패하는 문제 발생 (bean 생성 실패) → 알고보니 테스트 환경의 properties도 개발환경에서 변경한것처럼 redis 설정값을 변경해줘야 했다.

 

그런데 test환경의 properties는 개발환경과 다르게 redis의 host와 port번호의 value값이 embedded 되어있었다. 어떤 값이 embedded 된 건지 몰라 사수분께 여쭤봤는데 pom.xml에 설정해 준 redis test-container가 설정되어 있다고 하셨고 이 값은 playtika에서 제공하는 testcontainers 오픈소스를 사용 중이라고 하셨다.

 

즉, 테스트 환경에서는 실제 사용하는 redis가 아닌 빈 redis를 사용해 테스트하기 위함이라고 하셨고 빈 redis생성은 playtika의 도움을 받는 것이다. playtika가 제공하는 testcontainer는 제공하는 오픈 소스 프로젝트 중 하나로 테스트 환경에서의 컨테이너 사용을 간편하게 해주는 도구이다.

 

예를 들어 redis 같은 외부 db와 연결해서 테스트해야 할 때, 외부 시스템(redis)에 대한 컨테이너를 만들어서 테스트할 수 있도록 도와준다.

 

playtika testcontainers 오픈 소스 코드는 아래 github에서 확인할 수 있다.

https://github.com/PlaytikaOSS/testcontainers-spring-boot

 

GitHub - PlaytikaOSS/testcontainers-spring-boot: Container auto-configurations for Spring Boot based integration tests

Container auto-configurations for Spring Boot based integration tests - GitHub - PlaytikaOSS/testcontainers-spring-boot: Container auto-configurations for Spring Boot based integration tests

github.com

 

결론

근데 내가 설정하려는 redis key값은 테스트할 때 mocking 할 것이기 때문에 서비스단에서 redis에서 호출하려는 key값만 테스트 환경 properties에 존재하도록 설정해 주면 어떤 값이 embedded 되든 상관없었지만 테스트할때 유용한 외부 시스템에 대한 컨테이너를 제공해 주는 playtika의 testcontainers을 알게되었다.

'성장이야기 > TIL' 카테고리의 다른 글

[개발일지] 230516 Java Map.Entry 사용하기  (0) 2023.05.16
[개발일지] 230511 @JsonAutoDetect을 이용해 직렬화, 역직렬화  (0) 2023.05.11
[개발일지] 230509 @Mock, @MockBean, @InjectMocks의 관계  (0) 2023.05.09
[개발일지] 230504 IN절 안의 foreach문  (0) 2023.05.04
[개발일지] 230502 flatMap과 동적쿼리 foreach문  (0) 2023.05.02
'성장이야기/TIL' 카테고리의 다른 글
  • [개발일지] 230516 Java Map.Entry 사용하기
  • [개발일지] 230511 @JsonAutoDetect을 이용해 직렬화, 역직렬화
  • [개발일지] 230509 @Mock, @MockBean, @InjectMocks의 관계
  • [개발일지] 230504 IN절 안의 foreach문
seungjjun
seungjjun
  • seungjjun
    개발이야기
    seungjjun
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 성장이야기
        • TIL
        • 주간회고
      • Java
        • Spring
        • Spring Security
      • 트러블슈팅
      • Kafka
      • OS
      • Network
      • 메가테라
      • Database
      • Algorithm
      • Git
      • HTML
      • CSS
      • 독서
      • 컴퓨터 이해하기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    항해99
    redis
    개발일지
    Til
    메가테라 주간회고
    메가테라
    항해플러스
    이커머스 프로젝트
    주간회고
    graphQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seungjjun
[개발일지] 230510 Playtika testcontainers
상단으로

티스토리툴바