2013-09-10 2 views
1

У меня есть приложение Mule, и я создаю некоторые модульные тесты, включая некоторые Mock Web Services, для проверки определенных функций. Mock Web Services, который я создаю, используя поток тестового мула, поэтому я регистрирую входящую конечную точку HTTP.FunctionalTestCase in Mule - Как загрузить один поток перед другим?

Когда я запускаю свой тест, я получаю сбой, потому что один из моих объектов Spring не загружается из-за того, что он не может добраться до моего макетного веб-сервиса (веб-сервис загружается динамически, поэтому при выполнении теста он разрешает localhost, в противном случае это обычно внешняя служба). Я убедился, что, когда я делаю свой getConfigResources(), я загружаю свой файл с файловым файлом веб-сервиса, прежде чем загружать свои компоненты контекста весны, однако я все равно получаю сообщение об ошибке.

Есть ли способ заставить Mule/Spring загружать мой файл потока и запускать мой http:inbound-endpoint перед моими фасолью?

ответ

1

Вы можете попробовать установить атрибут depends-on на своем весеннем бобах на имя потока Мула, но я сомневаюсь, что он сработает, и я не уверен, что это все-таки желательно.

В противном случае я могу думать только о том, что вы сами инициализируете фабрику весеннего боба в методе вашего функционального тестового примера. Это даст вам возможность передать значение динамического порта, который вы используете, с вашей конечной точкой входящего HTTP-соединения (при условии, что вы используете динамический порт, что является рекомендуемым методом).

+0

'@ Setup' Я не знаком с этим, это как' @ Before' в JUnit? Будет ли способ программно создать мой поток (с помощью макетной службы), чтобы я мог гарантировать, что он будет создан раньше всего? – Nicholas

+0

ROFL, извините. Предназначение: '@ Before'. Даже если вы создаете поток программно, вам нужно сначала запустить Mule, чтобы иметь возможность зарегистрировать его. Когда ваш компонент Spring выполняет свой HTTP-вызов: в методе 'initialize' /' @ PostContruct'? –

+0

Во время создания объекта bean. Я вызываю HTTP для получения информации, которую он кэширует при запуске. – Nicholas

Смежные вопросы