有没有办法使用 MUnit 在子流中模拟非全局过滤器?
Is there a way to mock non-global filters in a sub-flow using 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");
这导致消息未被模拟。
这里有很多问题混淆了。
您必须包装子流程是一个 MUnit/Mule 问题,如此处评论:
第二个问题是过滤器模拟。简短的回答是你不能,请检查:
https://github.com/mulesoft/munit/issues/108
从概念上讲,过滤器是一种进行选择(或普通语言中的 if)的简写方式。人们通常不会模拟 choice/if 它而是更改变量中的值,或者在我们的例子中更改 mule 消息有效负载中的值。这就是过滤器MP不能被mock的原因。
HTH
我想知道是否有一种方法可以使用 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");
这导致消息未被模拟。
这里有很多问题混淆了。
您必须包装子流程是一个 MUnit/Mule 问题,如此处评论:
第二个问题是过滤器模拟。简短的回答是你不能,请检查: https://github.com/mulesoft/munit/issues/108
从概念上讲,过滤器是一种进行选择(或普通语言中的 if)的简写方式。人们通常不会模拟 choice/if 它而是更改变量中的值,或者在我们的例子中更改 mule 消息有效负载中的值。这就是过滤器MP不能被mock的原因。
HTH