我是骆驼世界的新手。使用 camel-cxf,我实现了一个 web 服务(基于请求的 id,如果从响应中找到带有记录详细信息的响应,则查询数据库,否则返回静态响应),它具有一些非常基本的数据库交互和转换。
我正在尝试编写一些单元测试(独立于数据库即)存根数据库交互以形成静态响应)。有没有办法跳过发送到数据库端点并在交换(模仿数据库记录)上发送静态数据并验证转换结果?
问候, 尚卡尔
我是骆驼世界的新手。使用 camel-cxf,我实现了一个 web 服务(基于请求的 id,如果从响应中找到带有记录详细信息的响应,则查询数据库,否则返回静态响应),它具有一些非常基本的数据库交互和转换。
我正在尝试编写一些单元测试(独立于数据库即)存根数据库交互以形成静态响应)。有没有办法跳过发送到数据库端点并在交换(模仿数据库记录)上发送静态数据并验证转换结果?
问候, 尚卡尔
我将以下代码添加到我的测试类中,并使用 expectedBodiesReceivedInAnyOrder 方法验证了模拟端点。
@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);
}