Взаимодействие с базой данных 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);
}
Другие вопросы по тегам