我是骆驼世界的新手。使用camel-cxf,我已经实现了一个webservice(基于请求上的id,如果从具有记录详细信息的响应中找到,则查询数据库,否则返回静态响应),其具有一些非常基本的数据库交互和转换。
我正在尝试编写一些单元测试(独立于数据库,即存根化数据库交互以形成静态响应)。有没有办法跳过发送到数据库端点并在交换机上发送静态数据(模仿数据库记录)并验证转换结果?
此致 香卡
答案 0 :(得分:0)
我将以下代码添加到我的测试类中,并使用expectedBodiesReceivedInAnyOrder方法验证了mockendpoints。
@Before
public void mockEndPoints() throws Exception{
AdviceWithRouteBuilder mockBldr = new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
interceptSendToEndpoint("mybatis:queryTable?statementType=SelectList")
.skipSendToOriginalEndpoint()
.process(new Processor(){
@Override
public void process(Exchange exchange) throws Exception {
ArrayList<DataObject> ruleList = new ArrayList<DataObject>();
ruleList.add(new DataObject(1,"ABC"));
exchange.getIn().setBody(ruleList);
}
})
.to("mock:mybatisSelect");
}
};
context.getRouteDefinition("route1").adviceWith(context, mockBldr);
}