Отслеживание ввода и вывода каналов сообщений Spring Integration - PullRequest
0 голосов
/ 18 декабря 2018

Я создал небольшое приложение, используя Spring Integration.Я также написал некоторые jUnit для большего количества обслуживания и других классов.Я использовал конфигурацию XML для конфигурации канала и точки входа, мне интересно, могу ли я проверить вход и выход перикулярного канала.Есть ли способ, которым мы можем проверить вход и выход каналов? ..

Обновление

Я пытаюсь ниже поток.Как мне продолжить?

<int:channel id="getPresciption" />
<int:channel id="respPrescription" />
<int:channel id="storePrcedureChannell" />

<int-http:inbound-gateway
    request-channel="getPresciption" reply-channel="respPrescription"
    supported-methods="GET" path="/getAllPresciption">

    <int-http:request-mapping
        consumes="application/json" produces="application/json" />
</int-http:inbound-gateway>

<int:service-activator
    ref="prescriptionServiceActivator" method="buildPrescription"
    input-channel="getPresciption" output-channel="storePrcedureChannell" />

<int:service-activator
    ref="prescriptionServiceActivator" method="storePrescription"
    input-channel="storePrcedureChannell"></int:service-activator>

ТАК, как мне написать контекст теста?

Пусть ниже приведены методы, которые вызываются потоком канала.

public Message<List<Prescription>> buildPrescription() {
  //Do some processing
}

public Message<List<Prescription>> storePrescription(Message<List<Prescription>> msg) {

  //Do something and return the List.
}

1 Ответ

0 голосов
/ 18 декабря 2018

Прежде всего вы можете взглянуть на Spring Integration Testing Framework: https://docs.spring.io/spring-integration/reference/html/testing.html#test-context

А затем использовать MockIntegration.mockMessageHandler() вместе с MockIntegrationContext.substituteMessageHandlerFor() для замены реального обработчика в конечной точке и проверкивходящие данные из канала.

Если вам все еще сложно, вы всегда можете добавить эти каналы в свой тестовый класс и добавить к ним ChannelInterceptor и проверить сообщения в его реализации preSend().

...