1
我有一个Camel
应用程序与spring
集成,我想为它编写测试。这里是我的应用程序:我是否正确测试?
骆驼-config.xml中
<camelContext xmlns="http://camel.apache.org/schema/spring">
<routeBuilder ref="converter" />
</camelContext>
<bean id="converter" class="Converter"/>
类测试:
@Component
public class Converter extends SpringRouteBuilder {
@Override
public void configure() throws Exception {
final XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat();
xmlJsonFormat.setTypeHints(String.valueOf("YES"));
from("ftp://[email protected]?" +
"noop=true&binary=true&consumer.delay=5s&include=.*xml")
.idempotentConsumer(header("CamelFileName"), FileIdempotentRepository.fileIdempotentRepository(new File("data", "repo.dat")))
.marshal(xmlJsonFormat).to("file://data").process(
new Processor() {
//System.out.println();
}
});
}
}
这是我的测试类:
public class RouteTest extends CamelTestSupport {
@Override
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
context.addComponent("ftp", context.getComponent("seda"));
return context;
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("ftp://[email protected]").to("mock:quote");
}
};
}
@Test
public void testSameMessageArrived() throws Exception {
MockEndpoint quote = getMockEndpoint("mock:quote");
FileReader fl = new FileReader("D:\\test\\asdasd.txt");
quote.expectedBodiesReceived(fl);
template.sendBody("ftp://[email protected]", fl);
quote.assertIsSatisfied();
}
}
该测试通过,但我不确定这是测试这个特定程序的正确方法。
你能告诉我,如果我做得对,或者我应该以其他方式测试吗?
我正在读这本书,但还没有找到类似的例子。 我还加了'@ ContextConfiguration'注解。现在我可以看到我班的测试报道。 还有一件事: 我不应该有我的ftp服务器的物理连接吗?不管我放入'expectedBodiesReceived',我的测试总是通过。这不应该是这样,对吧? – qiGuar