일반적으로 우리는 QueueChannel
테스트를 사용하며 메시지는 receive(10000)
방법을 통해 대기합니다. 이렇게하면 데이터 소스와 독립적으로 테스트 메소드 스레드가 데이터가 도착할 때까지 차단됩니다.
SourcePollingChannelAdapter
은 TaskScheduler
에 의해 트리거되므로 전체 흐름 논리는 테스트 메서드와 별도의 스레드로 수행됩니다. 채널 교체에 대한 귀하의 아이디어가 도움이되지 않습니다. Thread.sleep()
은 가치가있을 수 있지만 QueueChannel.receive(10000)
은 실제로 신뢰할 수 있습니다. 실제로는 최대 10 초 동안 대기하기 때문입니다.
테스트 케이스를 차단하는 또 다른 방법은 CountDownLatch
표준에서 나옵니다. countDown()
을 테스트 방법에서 기다리면됩니다.
테스트 할 다른 방법이 있습니다. 반복 사이에 짧은 수면 기간의 루프가 있고 종료 및 확인을위한 일부 조건을 확인하십시오. 결국 폴러와 데이터베이스의 경우 유용 할 수 있습니다. 따라서 원하는 상태가 될 때까지 루프에서 SELECT를 수행합니다.
Reference Manual에서 몇 가지 추가 정보를 찾을 수 있습니다.