如何测试只设置属性的骆驼路线
How to test camel route that only set properties
我有一个路由生成器,它根据消息的内容设置特定的属性。它不会将它发送到其他端点,因此我无法模拟它们并检查它们得到了什么。
我可以生成消息或交换,但是在它被这个路由生成器转换后有没有办法检查它?
假设您的路由是同步的(即不是 from:seda
),您可以简单地检查 属性 是否已在您通过 ProducerTemplate
发送的交换上更新。
假设您需要检查 属性 TestProp
:
的值
package com.example.demo;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.ExchangeBuilder;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
class PropertyUpdateTest {
@Produce("direct:testProps")
ProducerTemplate template;
@Autowired
CamelContext camelContext;
@Test
void verifyRouteUpdatesProperty() {
Exchange exchange = ExchangeBuilder.anExchange(camelContext)
.withProperty("TestProp", "InitialVal")
.build();
template.send(exchange);
assertThat(exchange.getProperty("TestProp")).isEqualTo("UpdatedVal");
}
}
我有一个路由生成器,它根据消息的内容设置特定的属性。它不会将它发送到其他端点,因此我无法模拟它们并检查它们得到了什么。 我可以生成消息或交换,但是在它被这个路由生成器转换后有没有办法检查它?
假设您的路由是同步的(即不是 from:seda
),您可以简单地检查 属性 是否已在您通过 ProducerTemplate
发送的交换上更新。
假设您需要检查 属性 TestProp
:
package com.example.demo;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.ExchangeBuilder;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
class PropertyUpdateTest {
@Produce("direct:testProps")
ProducerTemplate template;
@Autowired
CamelContext camelContext;
@Test
void verifyRouteUpdatesProperty() {
Exchange exchange = ExchangeBuilder.anExchange(camelContext)
.withProperty("TestProp", "InitialVal")
.build();
template.send(exchange);
assertThat(exchange.getProperty("TestProp")).isEqualTo("UpdatedVal");
}
}