有没有办法使用MUnit在子流中模拟非全局过滤器?

时间:2015-04-29 05:52:28

标签: mule munit

我想知道是否有办法使用MUnit模拟子流中的自定义过滤器。

我正在使用Mule 3.4.0和MUnit 3.4.0.M5。

示例流程如下所示。

<sub-flow name="a">
     <choice>
          <when expression="something...">
               <custom-filter doc:name="filter a">...</custom-filter>
          </when>
          <otherwise>
               ...
          </otherwise>
     </choice>
</sub-flow>

我必须在子流周围创建一个包装器流,因为每当我尝试使用runFlow语法直接命中子流时,我都会得到一个NullPointerException。但是,在这样做时,我无法使用whenMessageProcessor语法模拟自定义过滤器。请看下面我的尝试。

whenMessageProcessor("custom-filter"
.withAttributes(attribute("name").ofNamespace("doc").withValue("filter a"))
.thenReturn(muleMessageWithPayload("some response");

这会导致邮件没有被模拟。

1 个答案:

答案 0 :(得分:1)

这里有问题混淆了。

你必须包装子流是一个MUnit / Mule问题,如下所示: How to mock a Java component within Mule Flow using MUnit

第二个问题是过滤器模拟。简短的回答是你不能,请检查: https://github.com/mulesoft/munit/issues/108

从概念上讲,过滤器是一种做出选择的缺点方式(或者使用普通语言的if)。人们通常不会模拟选择/是否更改了变量中的值,或者在我们的情况下更改了mule消息有效负载中的值。这就是为什么过滤器MP不能被嘲笑的原因。

HTH

相关问题