jef*_*ter 3 unit-testing apache-camel
我有一个骆驼单元测试,我想访问在路由的第一点在Exchange上设置的标头值。
路线示例...
<route id="VCM001_incoming">
<from uri="file:{{InLocation}}" />
<convertBodyTo type="java.lang.String"/>
<setHeader headerName="FileNameWithoutExtension">
<simple>${file:onlyname.noext}</simple>
</setHeader>
<to uri="direct:splitFile" />
</route>
Run Code Online (Sandbox Code Playgroud)
使用过的Java代码...
public List<String> createList(Exchange exchange) {
String fileName = (String) exchange.getIn().getHeader("FileNameWithoutExtension");
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。
现在在我的测试中,我想找出什么标题值为“ FileNameWithoutExtension”。
@Produce(uri = "file:{{InLocation}}")
private ProducerTemplate inputEndpoint;
@EndpointInject(uri = "mock:output1")
private MockEndpoint outputEndpointRPR;
@Test
public void testCamelRoute() throws Exception
{
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file:{{OutLocation}}").to(outputEndpoint);
}
inputEndpoint.sendBody("test-message");
Object[] expectedBodies = new Object[]{"Success: filename=xxx"};
// At this point I need the header 'FileNameWithoutExtension' to setup the correct 'expectedBodies'
outputEndpoint.expectedBodiesReceivedInAnyOrder(expectedBodies);
assertMockEndpointsSatisfied();
}
Run Code Online (Sandbox Code Playgroud)
知道这已经很晚了,对于骆驼2.15.2,您可以使用以下代码
outputEndpoint.expectedHeaderReceived("header", "value");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5332 次 |
| 最近记录: |