【发布时间】:2017-01-31 17:55:39
【问题描述】:
我有一个想要测试的流程。流具有 HTTP 入站连接器,流本身充当 RESTful 服务。
流程需要设置一些 URL 参数,并在整个过程中使用标准表示法访问这些参数:#[message.inboundProperties.'http.query.params'.test]。
我想使用 MUnit 测试这个流程。当我针对流创建默认 MUnit 测试时,MUnit 会创建一个 flow-ref 来调用我的原始流。但是,运行此测试会立即失败,因为该流程需要通过 HTTP 调用,并且需要设置 URL 参数。
这就是我现在的位置。我希望在调用 flow-ref 之前设置这些变量,以便我的流程可以正常处理。
我尝试了一些方法:
- 使用
munit:set组件,它允许设置各种属性 - 手动实例化
MessagePropertyMapContext并将其分配给http.query.params变量 - 将
flow-ref组件替换为HTTP组件并使用实际的HTTP 消息调用流
这些似乎都不能正常工作。
变量设置似乎总是失败,并在尝试访问变量时导致NullPointerException。
使用HTTP 组件调用流程不起作用,因为Mule 随机分配一个端口进行测试,而我似乎无法在运行时访问该端口。因此我无法调用端点。
我在其他地方寻找过类似的问题 here 和 here,但它们似乎对我没有帮助。
所以我的基本问题是:当从 MUnit 测试中进行测试时,如何设置流可以访问的 URL 参数。有没有更好的方法来实现我在这里想要实现的目标?
谢谢!
【问题讨论】: