728x90
반응형

https://github.com/ozimov/embedded-redis

 

GitHub - ozimov/embedded-redis: Redis embedded server

Redis embedded server. Contribute to ozimov/embedded-redis development by creating an account on GitHub.

github.com

Embedded Redis를 사용하는 목적은 개발시에 실제 Redis 설치없이 Unit test를 작성하기 위함이다. 

 

초기 Spring boot Redis dependency를 테스트 하기 위해서 Redis 설치를 하였지만 Unit test를 실제 Redis에 연결해서 할 수 없으니, Embedded Redis를 설치하였다. 

 

2022.01.12 - [Infrastructure/redis] - Redis 설치하기 in kubernetes

 

Redis 설치하기 in kubernetes

$ helm install -f values.yaml my-release bitnami/redis​ $ helm repo add bitnami https://charts.bitnami.com/bitnami 현재 구현하고 있는 Service의 경우 Redis를 사용해야 하기 때문에 Redis는 local에 설..

corono.tistory.com

 

그럼 Embedded Redis를 이용한 Unit test는 어떻게 작성하는지 알아보자. 

 

Embedded Redis를 Unit test에서 사용하는 범위는 Repository Test로 한정할 예정이다. Embedded Redis의 목적에 맞게 한정시킬 예정이다.Controller, Service의 Unit test는 Mockito를 이용하여 Mocking 해서 작성하면 된다. 

 

Test 용 RedisConfiguration 추가

TestRedisConfig class는 Emnbedded Redis server를 Test가 시작할 때 start 시키고, Test가 완료될 때 stop 시킨다. 

 

Application-test.yaml 생성

Test 용 appilcation-test.yaml을 만들고 Embedded Redis로 접속할 수 있는 정보를 입력하였다. 

 

JwtTokenRepository.java 파일

이 파일은 현재까지 나의 프로젝트에서 작성된 JwtTokenRepository.java 파일이다. 기본적은 save(), getById(), delete()등의 Method는 기본적으로 생성이 되므로 포함되어 있지 않다. 

 

JwtTokenRepositoryTest.java 파일

기본 CRUD에 대한 Unit test를 추가하였다. 

TestJwtTokenBuilder.java 파일

Unit test를 작성하다보면 반복적으로 Dummy data를 생성하는 경우가 있다. Unit test가 가지는 불편함 중에 하나이다. 이 부분을 간단히 하기 위해서 별도의 Static Class를 만들어서 간단한 호출을 통해서 사용할 수 있도록 하였다. 

 

728x90
반응형

+ Recent posts