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