2013-10-09 13 views
2

Я хочу проверить свой собственный класс Group, который реализует org.mule.api.lifecycle.Callable. Group инвентарь onCall(MuleEventContext) способ. Теперь, чтобы проверить Group, мне нужно mockMuleEventContext класс.Как издеваться над MuleEventContext class

Мне интересно знать, как люди делают это, и если они могут бросить некоторые лучшие практики/приемы и советы,

ответ

1

Вам действительно нужно реализовать org.mule.api.lifecycle.Callable? Если ваш компонент был POJO, вам не пришлось бы возиться с MuleEventContext.

Если вам действительно нужно, а затем использовать getTestEventContext помощников из http://www.mulesoft.org/docs/site/3.4.0/testapidocs/index.html?org/mule/tck/junit4/AbstractMuleContextTestCase.html

Или, если вам нужна дополнительная инфраструктура вроде MuleClient, то на самом деле создать функциональный тест, за счет расширения http://www.mulesoft.org/docs/site/3.4.0/apidocs/index.html?org/mule/tck/junit4/FunctionalTestCase.html

+0

да мне нужно реализовать 'Callable', чтобы получить свойство сообщения и' от мула под клиентом контекста –

+0

так, как я могу установить 'MuleMessage', используя предоставленный вами API. Я использую Mule3.3. –

+0

рассмотрел мой ответ, который также применяется для 3.3. –

1

Используйте AbstractMuleContextTestCase. Это должно решить проблему.

Сделайте тестовый образец расширенным AbstractMuleContextTestCase.

Затем в методе тестирования, чтобы получить объект MuleEventContet, используйте метод getTestEventContext для вспомогательных данных MuleTestUtils , предоставленных mule.

MyComponentTest extends AbstractMuleContextTestCase { 

Затем в методе испытаний:

MuleEventContext eventContext = MuleTestUtils.getTestEventContext("",  MessageExchangePattern.REQUEST_RESPONSE, muleContext);    
     ......... 
     ......... 
    MuleMessage result = (MuleMessage)componentInstance.onCall(eventContext); 

Надеется, что это помогает.

0

Это мой любимый способ создать MuleEventContext для тестирования отзывной компоненты:

class TestClass extends org.mule.munit.runner.functional.FunctionalMunitSuite { 
... 
    MuleEvent event = testEvent("PAYLOAD HERE"); 
    MuleEventContext eventContext = new org.mule.DefaultMuleEventContext(event); 
... 
} 
Смежные вопросы