
Awaitility로 비동기 이벤트 테스트 하기: Spring @Async와 함께 쓰는 법
·
Java & Spring
Awaitility란 무엇인가?Awaitility는 단순히 "조건을 만족할 때까지 기다리는" 라이브러리입니다. 자바의 while 루프나 Thread.sleep을 사용하지 않고, 안정적으로 polling 하며 조건이 만족될 때까지 기다립니다. 비동기 테스트 도입 계기Spring에서 @Async 와 같이 비동기적으로 수행되는 코드를 테스트할 때 가장 어려운 점은 "테스트 메소드가 먼저 종료되어 비동기 로직이 미처 수행되지 못하는 것"입니다. Thread.sleep() 으로 기다리는 방식 보단 적절한 시간을 두고 polling 으로 완료가 되면 종료되는게 더 효율적이라 판단하였습니다. 기본 사용법await().atMost(5, SECONDS) .until(() -> someService.getSta..