я весной следующего года по маршруту:Весна Тестирование содержимого Camel маршрутизатора на основе
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:topic:inbox" />
<choice>
<when>
<simple>${in.header.Value}</simple>
<log message="Cc: ${in.header.Value}" />
</when>
</choice>
<to uri="mock:result" />
</route>
</camelContext>
У меня есть требование использовать Spring Testing (CamelSpringJUnit4ClassRunner), хотя я нашел легко понять примеры о том, как проверить состояние с Java DSL. Мой тест Класс, как это:
@RunWith(CamelSpringJUnit4ClassRunner.class)
@BootstrapWith(CamelTestContextBootstrapper.class)
@ContextConfiguration(locations = "file:src/main/resources/META-INF/spring/camel-context-activemq-embedded.xml")
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
@MockEndpoints("log:*")
@DisableJmx(false)
public class MyTest{
private Logger LOG = LogManager.getLogger(MyTest.class.getName());
protected Exchange exchange;
protected CustomComponent customComponent= new CustomComponent();
@Produce(uri = "activemq:topic:inbox")
protected ProducerTemplate template;
@EndpointInject(uri = "mock:result")
protected MockEndpoint resultEndpoint;
@Test
public void tes1() throws InterruptedException {
String headerValue= MyComponent.Value;
EmailAddress recipients = new EmailAddress("[email protected]");
template.sendBodyAndHeader("activemq:topic:inbox", recipients.toString(), headerValue);
resultEndpoint.expectedBodiesReceived(headerValue);
resultEndpoint.expectedHeaderReceived("header value", headerValue);
resultEndpoint.expectedMessageCount(1);
}
Я изо всех сил, чтобы понять, как проверить фактическое состояние, диктуемой ЦБР, но что более важно, я сомневаюсь, так ли это даже правильный способ проверить это. MyComponent.VALUEConstant - это свойство, указанное в моем пользовательском компоненте, и вышеуказанный тест на самом деле проходит. Однако, если я создал экземпляр headerValue с другим свойством на моем компоненте, и поэтому условие должно завершиться неудачно, тест проходит. Не могли бы вы помочь?
Спасибо,
Я
Привет, благодарю вас за помощь. Я считаю, что я был очень смущен простым выражением, поскольку Value является фактическим свойством в моем пользовательском компоненте (только частично написанном мной), который только сопоставляется с «Value». Поэтому, пожалуйста, поправьте меня, если я ошибаюсь, я считаю, что мне нужно создать экземпляр этого значения с фактическим адресом электронной почты, а затем отправить его через sendBodyAndHeader, правильно? – paranza
Да, я подумал, что мне нужно иметь конечную точку (макет), чтобы проверить, получено ли сообщение (внутри). Однако я не могу изменить маршрут весны. Есть ли способ (который действительно то, что я искал), чтобы ввести еще один макет, но только в тесте? –
paranza
Могу ли я иметь более одного конечного пункта в моем маршруте? У меня есть простой журнал: сообщение, которое я хочу проверить, а также условие выбора. – paranza