【问题标题】:Set HTTP Url Parameters for MUnit Mule Test为 MUnit Mule 测试设置 HTTP Url 参数
【发布时间】: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 随机分配一个端口进行测试,而我似乎无法在运行时访问该端口。因此我无法调用端点。

我在其他地方寻找过类似的问题 herehere,但它们似乎对我没有帮助。

所以我的基本问题是:当从 MUnit 测试中进行测试时,如何设置流可以访问的 URL 参数。有没有更好的方法来实现我在这里想要实现的目标?

谢谢!

【问题讨论】:

    标签: mule munit


    【解决方案1】:

    @TroyS 你可以试试下面的代码。它对我有用。

    <munit:set payload="#['']" doc:name="Set Message url_key:payload_1">
            <munit:inbound-properties>
                <munit:inbound-property key="http.query.params" value="#[['url_key':'payload_1']]"/>
            </munit:inbound-properties>
        </munit:set>
    

    【讨论】:

      【解决方案2】:

      如果你足够努力的话,事实证明 Mule 文档有答案;) 答案是对的here

      您只需在 MUnit 测试流程开始时添加 munit:set 组件(在您的 Mule Palette 中搜索“Set Message”以获取此组件):

      <munit:set payload="#['']" doc:name="Set HTTP query params">
          <munit:inbound-properties>
              <munit:inbound-property key="http.query.params" value="#[['transactionId': 'x873h3dj']]"/>
          </munit:inbound-properties>
      </munit:set>
      

      这将创建一个参数对transactionId: x873h3dj,然后可以根据需要在您的代码中访问它。 您可以通过按照正常 MEL 语法扩展以下结构来添加更多参数:

      #[['key1':'val1', 'key2': 'val2', 'key3': 'val3']]
      

      【讨论】:

        【解决方案3】:

        补充上面的答案,这对应于 Mule 3 托盘中的“设置消息”组件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-10-12
          • 1970-01-01
          • 1970-01-01
          • 2021-06-03
          • 2017-12-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多