我想测试我自己的自定义类Group
,它实现了org.mule.api.lifecycle.Callable
. Group
实现onCall(MuleEventContext)
方法。现在要测试Group
,我需要mock
MuleEventContext
上课。
我很想知道人们是如何做到这一点的,以及他们是否可以提出一些最佳实践/技巧和提示,
我想测试我自己的自定义类Group
,它实现了org.mule.api.lifecycle.Callable
. Group
实现onCall(MuleEventContext)
方法。现在要测试Group
,我需要mock
MuleEventContext
上课。
我很想知道人们是如何做到这一点的,以及他们是否可以提出一些最佳实践/技巧和提示,
你真的需要实施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
使用 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);
希望这可以帮助。
这是我最喜欢的创建 MuleEventContext 以测试 Callable 组件的方法:
class TestClass extends org.mule.munit.runner.functional.FunctionalMunitSuite {
...
MuleEvent event = testEvent("PAYLOAD HERE");
MuleEventContext eventContext = new org.mule.DefaultMuleEventContext(event);
...
}