【问题标题】:How to mock REST Services?如何模拟 REST 服务?
【发布时间】:2011-11-10 17:11:25
【问题描述】:

我有一个 maven/mule/spring 开发环境,可以在其中构建 REST 服务。我还有一系列 TestNG 测试来验证这些服务。我还希望能够更改来自服务的响应,返回特定信息或抛出异常。这是我可以自动测试服务的更广泛行为。我认为模拟服务是最好的方法,但我找不到任何关于如何模拟 REST 服务的好信息。

我可以查看有关如何模拟 REST Web 服务的任何材料吗?

--更新--

我想我会添加一个示例以使问题更具体。如果我有以下设置:

testA calls serviceA, which then calls serviceB

如果 serviceA 应该向 testA 返回 web 异常,如果 serviceB 响应错误,我想将 mockedServiceB 注入系统进行测试,其中 mockedServiceB 总是返回错误:

testA calls serviceA, which then calls mockedServiceB (which always returns an error to serviceA)

【问题讨论】:

  • 对于小规模的手动模型,您可以在网络服务器上使用静态文件和.htaccess。
  • 这感觉不是正确的方法。我认为我不应该仅仅为了改进测试而改变服务器资源。如果可能的话,我宁愿将我的测试材料包含在我的测试套件中。也许使用 WSDL 或 WADL 来创建测试材料。
  • 如我所说,小规模手动样机。它无论如何都不可扩展,但如果您只需要确保您的应用程序正确响应400+ 级别错误并且它可以成功接收来自GET 的数据,那么它就可以正常工作。我不认为该评论是您问题的答案是有原因的。
  • 不用担心。谢谢你的澄清。
  • 我意识到我上面的第一条评论具有误导性。我添加了一些相关信息以澄清我的立场。

标签: spring testing rest mocking mule


【解决方案1】:

一般来说,我会将我的 Mule 配置分段,使每个片段有一个服务,然后在测试时加载真实的服务 A 片段和测试服务 B 片段。测试服务 B 将使用 Mule test:component 来模拟好的或坏的回报。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,写了一个小库来模拟 REST 服务:https://github.com/mkotsur/restito。 你可以试试看。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 2015-02-10
      相关资源
      最近更新 更多