如何在Munit测试用例中使用set message组件设置入站属性

时间:2018-05-08 12:19:22

标签: mule expression mel munit

在我的一个测试案例中,我试图使用“设置消息”来设置uri parmas。 键值对如下例所示:

产品代码:(' 11',' 10')

当我尝试在组件中设置它时,我面临与MEL表达式的问题。 用单一的表达似乎不接受。

错误: org.mule.api.MessagingException:MEL解析失败。表达式:#[[' productcode' :'((' 11',' 10'))']]是无效的表达式。 (org.mule.munit.common.exception.MunitError)。

以下是我的Munit测试用例。



<munit:test name="gl-impl-test-suite-gl-getTransactionDataFromAgresso-Test" description="Test">
        <mock:when messageProcessor=".*:.*" doc:name="mockGetReconciliationDataFromAgresso">
            <mock:with-attributes>
                <mock:with-attribute name="doc:name" whereValue="#['getReconciliationDataFromAgresso']"/>
            </mock:with-attributes>
            <mock:then-return payload="#[getResource('scaffolder/response/emp/getEmployeeDetails.xml').asString()]" mimeType="application/xml"/>
        </mock:when>
        <munit:set payload="#[]" doc:name="Set Message">
            <munit:inbound-properties>
                <munit:inbound-property key="http.query.parmas" value="#[['productcode' :'( ('11','10'))']]"/>
            </munit:inbound-properties>
        </munit:set>
        <logger level="INFO" doc:name="Logger"/>
        <flow-ref name="gl-getTransactionDataFromAgresso" doc:name="Flow-ref to gl-getTransactionDataFromAgresso"/>
    </munit:test>
&#13;
&#13;
&#13;

请让我知道如何设置包含单个“的”MEL表达式。

1 个答案:

答案 0 :(得分:0)

user3366906的答案将正确解决单引号的问题,或者您可以转义单引号。我通常更喜欢使用混合引号,但很少你需要在字符串中使用单引号和双引号,其中转义是有用的。

value="#[['productcode' :'((\'11\',\'10\'))']]"