반응형
고민
- @SpringBootTest를 통해 테스트 중이었다.
- 테스트할때 딱 redis관련된것만 가져와서 로딩시간을 단축시킬 수 있을까했다.
결론
- SpringBoot에서 @DataRedisTest를 제공한다. 이걸 사용해서 테스트시간을 단축시킬 수 있었다.
- 보다보니 jpa도 이런식으로 진행할 수 있는데 다음에 해보면 좋겠다.
실습
- https://github.com/isgodflying/spring-data-test.git
- 위에서 프로젝트를 clone받아서 실행해 볼 수 있다.
접근방법
- 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
'일반적인 로직적용' 카테고리의 다른 글
.use(moment()에서 java LocalDateTime으로 변환하기) (0) | 2021.01.25 |
---|---|
.use(@Nullable의 재발견) (0) | 2020.12.21 |
.use(awaitility를 사용하여 딜레이 테스트하기) (0) | 2020.12.20 |
.use(jpa 조건절에서 and 속에서 or사용하기) (0) | 2020.12.20 |
.use(@MockBean vs @Mock) (0) | 2020.12.17 |