为 APIKit 的 Mulesoft 中的 MUnit 流参考设置入站属性

Set Inbound Properties for MUnit Flow Reference in Mulesoft for APIKit

我正在尝试在 MUnit 中测试 APIKit。最初我在 MUnit 中使用 http 请求来调用我的流,然后 APIKit 会将请求路由到我的逻辑所在的正确子流。现在我想模拟子流的元素之一,所以我试图用对 APIKit 流的引用替换 http 请求。这有效,但 APIKit 路由器抛出错误:

Cannot resolve request base path

因为 none 的入站属性已设置。这是我的问题,我如何模拟发送到流引用的入站属性,以便请求看起来像是来自 HTTP 请求?或者,是否有另一种方法可以构建代码,以便我可以模拟我的逻辑元素?

谢谢

您可以在模拟 http 响应中添加属性。请参阅下面的示例:

<mock:when messageProcessor=".*:.*" doc:name="Queue Message">
            <mock:with-attributes>
                <mock:with-attribute name="doc:name" whereValue="#['Queue Message']"/>
            </mock:with-attributes>
            <mock:then-return payload="#['Sample response']">
                <mock:inbound-properties>
                    <mock:inbound-property key="prop1" value="val1"/>
                    <mock:inbound-property key="prop2" value="val2"/>
                </mock:inbound-properties>
            </mock:then-return>
        </mock:when>

希望对您有所帮助

您可以在流引用之前使用设置消息处理器来设置负载和属性。请参考以下代码

    <munit:before-suite name="twitter_munit_testBefore_Suite" description="MUnit Test">
        <scripting:component doc:name="Script">
            <scripting:script name="groovyScriptPayloadGenerator" engine="Groovy"><![CDATA[ 
        import groovy.json.JsonSlurper
        def jsonSlurper = new JsonSlurper()
        def object = jsonSlurper.parseText '''
                        { "positive": 15,
                          "negative": 5,
                          "neutral": 0
                        }''']]></scripting:script>
        </scripting:component>
    </munit:before-suite>

    <munit:test name="new-test-suite-tetsFlowTest" description="Test">
        <munit:set payload="#[resultOfScript('groovyScriptPayloadGenerator')]" doc:name="Set Message">
            <munit:inbound-properties>
                <munit:inbound-property key="http.query.params" value="#[['query':'value']]"/>
            </munit:inbound-properties>
        </munit:set>
        <flow-ref name="tetsFlow" doc:name="Flow-ref to tetsFlow"/>
    </munit:test>

另请查看 this 了解更多详情。 您也可以以同样的方式配置模拟。 希望这有帮助..