2

我想测试我自己的自定义类Group,它实现了org.mule.api.lifecycle.Callable. Group实现onCall(MuleEventContext)方法。现在要测试Group,我需要mock MuleEventContext上课。

我很想知道人们是如何做到这一点的,以及他们是否可以提出一些最佳实践/技巧和提示,

4

3 回答 3

1

你真的需要实施org.mule.api.lifecycle.Callable吗?如果您的组件是 POJO,您就不必弄乱MuleEventContext.

如果您真的需要它,请使用http://www.mulesoft.org/docs/site/3.4.0/testapidocs/index.html?org/mule/tck/junit4/AbstractMuleContextTestCase.htmlgetTestEventContext中的帮助程序

MuleClient或者,如果您需要/FunctionalTestCase.html

于 2013-10-09T18:24:39.537 回答
1

使用 AbstractMuleContextTestCase。这应该可以解决问题。

使测试用例扩展 AbstractMuleContextTestCase。

然后在获取MuleEventContet对象的测试方法中使用mule提供的MuleTestUtils helper cals的getTestEventContext方法。

MyComponentTest extends  AbstractMuleContextTestCase {

然后在测试方法中:

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

希望这可以帮助。

于 2013-10-10T14:42:29.487 回答
0

这是我最喜欢的创建 MuleEventContext 以测试 Callable 组件的方法:

class TestClass extends org.mule.munit.runner.functional.FunctionalMunitSuite {
...
    MuleEvent event = testEvent("PAYLOAD HERE");
    MuleEventContext eventContext = new org.mule.DefaultMuleEventContext(event);
...
}
于 2015-12-28T19:58:09.130 回答