首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mulesoft中为MUnit流引用为APIKit设置入站属性

在Mulesoft中为MUnit流引用为APIKit设置入站属性
EN

Stack Overflow用户
提问于 2016-05-18 18:27:32
回答 2查看 4.8K关注 0票数 2

我正试着用APIKit测试MUnit。最初,我在MUnit中使用一个http请求来调用我的流,然后APIKit会将请求路由到逻辑所在的适当子流。现在我想模拟子流的一个元素,所以我尝试用引用APIKit流来替换http请求。这是可行的,但是APIKit路由器抛出了一个错误:

代码语言:javascript
复制
Cannot resolve request base path

因为没有设置任何入站属性。这是我的问题,我如何模拟发送到流引用的入站属性,使请求看起来像来自HTTP请求?或者,还有其他方法可以构造代码,以便模拟逻辑的一个元素吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-19 01:06:46

您可以在模拟http响应中添加属性。见下面的样本:

代码语言:javascript
复制
<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>

希望这能有所帮助

票数 8
EN

Stack Overflow用户

发布于 2016-05-19 06:04:19

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

代码语言:javascript
复制
    <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>

还可以查看获得更多详细信息。同样的方式,你也可以配置模拟。希望这有帮助..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37307478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档