#unit-testing #apache-camel
#модульное тестирование #apache-camel
Вопрос:
Я использую CamelTestSupport
верблюжью версию 2.13.1.
Я бы хотел сделать что-то подобное, чтобы смоделировать два разных компонента:
@Override
public String isMockEndpoints() {
return "(activemq|exec)*";
}
Я не могу просто издеваться над всем с помощью «*», потому что я получал ошибки от используемого мной фреймворка activiti, который зависит от activiti
компонента.
Кто-нибудь из вас нашел способ сделать что-то подобное?
Комментарии:
1. Я не использую isMockEndpoints, поэтому не могу вам здесь помочь, но я делаю макет uri конечной точки, который вы можете сделать «детализированным» (это слово?), Как вам нравится. Например. издеваемый uri может выглядеть как mock:<your-uri> и т. Д. Затем у меня есть настройки test и prod, которые обозначают uri с или без «макета» впереди.
2. Я понимаю, что вы говорите. С помощью этого конкретного пакета я пытаюсь смоделировать существующие маршруты для более интеграционного теста.
3. Я делаю что-то подобное; для тестов (запускаемых, например, с помощью junit, но не совсем модульных тестов, больше похожих на интеграционные тесты) У меня есть другой файл контекста (который включает в себя мой основной файл контекста, но переопределяет несколько вещей, загружает другой файл свойств и т.д.). Свойства для test используют макет uri, тогда как свойства для prod этого не делают. Модульный тест загружает соответствующие настройки и запускается с макетами и т. Д. Для вашего маршрута требуется использовать свойство для <to> или <from> и т. Д. uri, Которое затем устанавливается в соответствии с реквизитами prod / test . Это только один способ сделать это, я уверен, что есть и другие.
Ответ №1:
Вы можете использовать регулярное выражение, так что это что-то вроде:
return "(activemq.*|exec.*)"
Смотрите внизу этой страницы
http://camel.apache.org/intercept