我正在尝试设置MUnit测试以确认set payload方法将有效负载设置为正确的值。我通过HTTP端点发送JSON文件。
运行流程时,通常将有效负载设置为:
#[message.inboundproperties.'http.query.params'.json]
工作正常但是当我运行我的测试时,断言等于失败。
我使用http.query.params = ParameterMap {[json = [[{“protocol”:“http”,“host”:“0.0.0.0”,“port”:“8085”,“ path“:”“,”operation“:”GET“},{”protocol“:”https“,”host“:”0.0.0.0“,”port“:”8086“,”path“:”“,”操作“:”post“}]]]}
我的主要流程是:
<flow name="httpInboundFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<set-payload value="#[message.inboundProperties.'http.query.params'.json]" doc:name="Set Payload To Query Params"/>
</flow>
我的测试xml是:
<munit:test name="tddmunitdemo-test-suiteTest" description="MUnit Test">
<munit:set payload="#[]" doc:name="Set Message">
<munit:inbound-properties>
<munit:inbound-property key="http.query.params" value="ParameterMap{[json=[[ { "protocol":"http", "host":"0.0.0.0", "port":"8085", "path":"", "operation":"GET" }, { "protocol":"https", "host":"0.0.0.0", "port":"8086", "path":"", "operation":"post" } ]]]}"/>
</munit:inbound-properties>
</munit:set>
<flow-ref name="httpInboundFlow" doc:name="httpInboundFlow"/>
<munit:assert-on-equals expectedValue="[ { "protocol":"http", "host":"0.0.0.0", "port":"8085", "path":"", "operation":"GET" }, { "protocol":"https", "host":"0.0.0.0", "port":"8086", "path":"", "operation":"post" } ]" actualValue="#[payload]" doc:name="Assert Equals"/>
</munit:test>
测试失败并显示失败消息,指出实际值为空。
我可以通过模拟设置的有效负载来修复它,但是我没有检查设置的有效负载是否按预期工作。
答案 0 :(得分:0)
查看RFC 1738统一资源定位器 - https://www.ietf.org/rfc/rfc1738.txt
你应该编码花括号和括号。 JSON作为http参数有点奇怪,除非它可能是1或2个名称/值对。我希望您需要在网址中使用代码,例如localhost:8081 /?json =%5B%7B%22protocol ...
尝试对网址进行编码并告知我们。