为APIKit的Mulesoft中的MUnit流引用设置入站属性
我想在MUnit测试Apiket。最初,我在MUnit中使用http请求来调用我的流,然后APIKit将请求路由到我的逻辑所在的适当子流。现在我想模拟子流的一个元素,所以我尝试用对APIKit流的引用替换http请求。这是可行的,但APIKit路由器会抛出一个错误:为APIKit的Mulesoft中的MUnit流引用设置入站属性,mule,mule-studio,anypoint-studio,munit,Mule,Mule Studio,Anypoint Studio,Munit,我想在MUnit测试Apiket。最初,我在MUnit中使用http请求来调用我的流,然后APIKit将请求路由到我的逻辑所在的适当子流。现在我想模拟子流的一个元素,所以我尝试用对APIKit流的引用替换http请求。这是可行的,但APIKit路由器会抛出一个错误: Cannot resolve request base path 因为没有设置任何入站属性。这就是我的问题,如何模拟发送到流引用的入站属性,使请求看起来像来自HTTP请求?或者,是否有其他方法可以构造代码,以便模拟逻辑的一个元素
Cannot resolve request base path
因为没有设置任何入站属性。这就是我的问题,如何模拟发送到流引用的入站属性,使请求看起来像来自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>
希望这有帮助您可以在流引用之前使用set message processor来设置有效负载和属性。请参考以下代码
<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>
还要查看更多详细信息。
同样,您也可以配置mock。
希望这有帮助。谢谢,是的,这就是我最后要做的。