【问题标题】:Fake http responses with cucumber用黄瓜伪造 http 响应
【发布时间】:2018-03-17 15:32:33
【问题描述】:

假设我的应用中有一个依赖于外部 API 的功能 - 我提供了一个接口,该接口可以调用我的服务器,而服务器依赖于该接口,对某些外部 API 进行一些调用并响应某些内容客户。如果我想为此编写一个带有黄瓜的验收测试,我该如何存根对该外部 API 的调用,例如对https://www.cool-api.io/foo 的任何 GET 调用都会立即返回带有一些预定义标头的一些预定义 JSON 响应,对该 url 的任何 POST 请求都将返回带有一些预定义状态和标头等的响应。如果您这样做,您将如何进行验收测试'在用黄瓜吗?

【问题讨论】:

  • 如何使用像 mockito 这样的模拟框架

标签: xmlhttprequest cucumber stub


【解决方案1】:

为此,我们使用WireMockMockServer。您可以将它们实现为存根 API 调用。 另外,我建议使用像 Jackson 这样的框架从域对象生成 json。这样做的好处是不必在您的代码库中维护 json 字符串/文档,并在编译时检查您是否在测试中创建了有效的域对象。

【讨论】:

    【解决方案2】:

    我可能会编写自己的存根,它能够伪造具有预期内容和标头集的响应的实现。如果响应对象是用一个接口定义的,那么让你的手卷存根来实现那个接口。

    在我看来,为此使用 Mockito 可能会很麻烦。 Mockito 很棒,但是像这样设置一个复杂的返回值可能会很麻烦。在响应接口的实现中对响应进行硬编码可能更容易。

    我会使用 Cucumber 以外的其他工具检查与外部服务的实际集成。

    【讨论】:

      猜你喜欢
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 2011-07-13
      • 1970-01-01
      • 2013-10-21
      相关资源
      最近更新 更多