[ERROR] @SpringBootTest Disable @Cache
- ERROR
- 2020. 9. 14.
반응형
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 하게 된다.
추천서적
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
반응형