[ERROR] @SpringBootTest Disable @Cache

반응형

1. 문제

@SpringBootTest에서 RestController에 선언되어 있는 @Cache 때문에, 정상적으로 테스트가 되지 않는다.

테스트 전에 redis-server에서 직접 flushall을 호출해 모든 cache를 evict 해도 상황별로 테스트가 통과하거나 실패한다.

2. 원인

개발/테스트/운영환경 별로 cache server를 분리하지 않았기 때문에, 테스트 전에 cache를 flush all 해도 그 사이에 실제 사용자가 API에 접근하게되면 cache 데이터가 꼬이게되나?..

3. 해결

Test > sources > applicaiton.yml 에서 cache를 disable 한다.

application.yml

spring.cache.type : none

 

위와 같이 설정하면, 더이상 Test 에서 Cache 데이터를 사용하지 않고, 매번 메서드를 수행해 data를 return 하게 된다.


추천서적

 

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

COUPANG

www.coupang.com

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음


반응형

댓글

Designed by JB FACTORY