44.14. 도착 시간 테스트
Mock 끝점은 메시지의 도착 시간을 교환에 속성으로 저장합니다.
Date time = exchange.getProperty(Exchange.RECEIVED_TIMESTAMP, Date.class);
Date time = exchange.getProperty(Exchange.RECEIVED_TIMESTAMP, Date.class);
이 정보를 사용하여 메시지가 모크에 도달한 시기를 알 수 있습니다. 또한 이전 메시지와 다음 메시지가 모크에 도달한 시간 간격을 알 수 있는 기반을 제공합니다. 이를 사용하여 Mock 끝점에서 도착
DSL을 사용하여 기대치를 설정할 수 있습니다.
예를 들어 첫 번째 메시지는 다음에 수행할 수 있을 때까지 0-2초 사이에 도달해야 합니다.
mock.message(0).arrives().noLaterThan(2).seconds().beforeNext();
mock.message(0).arrives().noLaterThan(2).seconds().beforeNext();
이를 2차 메시지(0 인덱스 기반)로 정의하면 이전 메시지로부터 0-2초를 넘지 않아야 합니다.
mock.message(1).arrives().noLaterThan(2).seconds().afterPrevious();
mock.message(1).arrives().noLaterThan(2).seconds().afterPrevious();
둘 사이를 사용하여 하한값을 설정할 수도 있습니다. 예를 들어, 1-4초 사이여야 한다고 가정합니다.
mock.message(1).arrives().between(1, 4).seconds().afterPrevious();
mock.message(1).arrives().between(1, 4).seconds().afterPrevious();
또한 모든 메시지에 대한 기대치를 설정할 수 있습니다. 예를 들어, 이러한 메시지 간의 간격이 최대 1초여야 함을 나타낼 수 있습니다.
mock.allMessages().arrives().noLaterThan(1).seconds().beforeNext();
mock.allMessages().arrives().noLaterThan(1).seconds().beforeNext();
위의 예에서는 시간 단위로 초
를 사용하지만 Camel은 밀리초
및 분도
제공합니다.