Взаимодействие с базой данных Camel Stub при модульном тестировании
Я новичок в верблюжьем мире. Используя camel-cxf, я реализовал веб-сервис (на основе идентификатора запроса, запрашиваю базу данных, если найден, из ответа с подробностями записи, возвращаемыми со статическим ответом), который имеет некоторые базовые взаимодействия с базой данных и преобразование.
Я пытаюсь написать некоторые модульные тесты (независимо от базы данных, т. Е.) Заглушение взаимодействия с базой данных для формирования статического ответа). Есть ли способ пропустить отправку в конечную точку базы данных и отправить статические данные на обмен (имитируя запись базы данных) и проверить результат преобразования?
С уважением, Шанкар
1 ответ
Я добавил следующий код в свой тестовый класс и проверил макетные точки, используя метод pectedBodiesReceivedInAnyOrder.
@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);
}