Как проверить Hotfolder, которые используют каналы в Spring-интеграции? - PullRequest
0 голосов
/ 16 января 2019

в проекте весеннего интегрирования, у меня есть горячая папка, которая определяет, когда CSV-файл помещается в папку, и выполняет некоторые дополнительные действия, у меня есть адаптер входящего канала, связанный с каналом.

адаптер входящего канала -> канал. обнаруживает, когда CSV, который он разместил, получает Mns, с которым он связан сервис-активатор Что я, что делать его тест только то, что канал его получения MNS, когда файл его создал

я использую этот урок https://www.javacodegeeks.com/2013/05/spring-integration-file-polling-and-tests.html это очень полезно, но я могу создать контекст

Произошло исключение при разрешении TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@57a4d5ee] для подготовки экземпляра теста [proyect.integration.hotFolderTest@5af5def9] java.lang.IllegalStateException: не удалось загрузить ApplicationContext

1 Ответ

0 голосов
/ 16 января 2019

Вам нужно показать больше трассировки стека по этому вопросу, потому что сейчас неясно, в чем ваша настоящая проблема.

Также было бы замечательно поделиться некоторым кодом, который у вас есть и что вы хотели бы сделать в тестовом примере.

Чтобы проверить наличие сообщения в канале, вы можете настроить ChannelInterceptor и реализовать его preSend().

Однако мы также предлагаем что-то вроде @SpringIntegrationTest с функциями MockIntegration. Таким образом, вы можете заменить ваш реальный активатор службы на MockIntegration.mockMessageHandler() и выполнить проверку на нем.

Вам потребуется настроить noAutoStartup для упомянутой аннотации, не опрашивать каталог, пока вы не подготовите макет и не вызовете this.mockIntegrationContext.substituteMessageHandlerFor().

См. Дополнительную информацию в Справочном руководстве: https://docs.spring.io/spring-integration/docs/current/reference/html/testing.html#test-context

...