Google 태그 관리자 아이콘

일반적인 로직적용

.use(@DataRedisTest)

silvergoni 2020. 12. 20. 16:58
반응형

고민

  • @SpringBootTest를 통해 테스트 중이었다.
  • 테스트할때 딱 redis관련된것만 가져와서 로딩시간을 단축시킬 수 있을까했다.

결론

  • SpringBoot에서 @DataRedisTest를 제공한다. 이걸 사용해서 테스트시간을 단축시킬 수 있었다.
  • 보다보니 jpa도 이런식으로 진행할 수 있는데 다음에 해보면 좋겠다.

실습

접근방법

  • spring data redis는 properties에서 redis의 host, port가 설정이 가능하다.
  • 설정 후에 아래처럼 코드를 써서 테스트해 볼 수 있다.
  • Redis전용 configuration을 선언한 경우도 가능하다. 위의 github에 코드를 포함하였다.

@RunWith(SpringRunner.class)
@DataRedisTest
public class SpringDataRedisTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void 테스트() {
        //given
        redisTemplate.opsForValue().set("silvergoni", "tistory");

        //when
        String ret = (String)redisTemplate.opsForValue().get("silvergoni");

        //then
        assertThat(ret).isEqualTo("tistory");
    }

    @After
    public void after() {
        redisTemplate.delete("silvergoni");
    }
}

참고

https://www.baeldung.com/spring-embedded-redis
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-autoconfigured-redis-test
https://stackoverflow.com/questions/60113060/springboot-running-a-junit-unit-test-with-minimal-configuration