【问题标题】:Mocking services for integration testing in MuleMule 中集成测试的模拟服务
【发布时间】:2015-03-04 08:59:09
【问题描述】:

在我们的 mule 项目中 - 我们目前有我们的集成测试用例调用实际的外部 Web 服务(内部)。我们显然希望摆脱这一点,并为外部服务提供模拟服务,因为我们几乎完成了为 mule 项目设置构建服务器的工作。

我发现有很多选项可用于在 mule 流中进行模拟:

  1. MuleSoft 的 Munit - 仍处于 Beta 版本;但据说是最合适的人选。但由于它是 Beta 版,我们是否可以继续将其用于我们的代码,该代码将很快投入生产
  2. Confluex/Wiremock 和许多其他用于模拟 Web 服务的框架
  3. 拥有带有嵌入式码头服务器的测试用例来处理请求并模拟响应。

请告诉我您的意见。 谢谢并恭祝安康, 普里亚

【问题讨论】:

    标签: web-services mocking mule


    【解决方案1】:

    如果你问我会选择 Munit,我知道 BETA 可能有点吓人,但是:

    • 您的测试不需要像生产代码那样的稳定性
    • Munit 的 BETA 版本是稳定的,即它不是快照,因此它不会突然改变并中断您的测试
    • Munit 将在未来几个月内正式发布

    这就是代码稳定性。 也就是说,Munit 除了模拟你的流程之外还提供了许多其他功能,而且在某些时候,我认为你可能不仅喜欢对你的 mule 应用程序进行单元测试,而且还喜欢使用 Munit 进行集成测试。

    一般来说,您的其他选项虽然适用,但仍然依赖于一些外部系统,而 Munit 是一种隔离您的 Mule 代码并避免其进行外部调用的本机方式。

    HTH

    【讨论】:

      【解决方案2】:

      我觉得使用 munit xml 配置方法来测试 mule 流更好。

      您可以通过为 web 服务指定对模拟组件所需的响应来模拟服务,这是一种简单且可取的方法。对于模拟组件,您可以设置诸如“http.status”..etc 之类的入站属性。下一个流消息处理器中将需要的相应属性。

      【讨论】:

        【解决方案3】:

        我是 confluex-mock-http 的作者之一,目前正在将项目迁移到 https://github.com/shamsoftware/sham-http 。所以,我可能有偏见:)

        我更喜欢在进程中启动 HTTP 服务器,这就是为什么我帮助构建了一个这样做的项目。该库是专门制作的,因为我们已经使用选项 3 多次解决了这个问题。:)

        我将花费一些精力来发布 sham-http,并计划使其与 Mule 3.6.0 兼容。如果您使用的是其他版本,请务必添加一个问题以使其与您使用的任何版本兼容:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-07-20
          • 1970-01-01
          • 1970-01-01
          • 2012-04-25
          • 2013-10-23
          • 2019-02-24
          • 1970-01-01
          • 2023-03-31
          相关资源
          最近更新 更多