【问题标题】:Test of remote REST service API specifically HubSpot测试远程 REST 服务 API,特别是 HubSpot
【发布时间】:2019-11-05 12:17:41
【问题描述】:

我打算编写一个 Spring Boot 应用程序,该应用程序在内部处理一些联系人/客户数据,并且我想集成 HubSpot。例如,我有一个联系人 ID,我想用它来请求 HubSpot API(更新、删除、获取个人资料……)。

为 HubSpot 编写集成测试的最佳方法是什么?

  1. 我应该这样做吗?

  2. 当我要求 HubSpot 获取个人资料或更新联系人时,我希望得到 JSON 响应。我应该如何测试这个?

  3. 我是否应该测试我是否获得了一些 JSON,或者我是否应该测试 JSON 的结构以获取该联系人的更多信息以继续某些工作流程?

  4. 或者,我应该只为实际上请求 HubSpot API 的服务编写单元测试吗?

【问题讨论】:

    标签: rest spring-boot service integration-testing


    【解决方案1】:

    这是一个有趣的问题。关于我应该测试什么的许多问题得到了很好的答案,这取决于你准备承担的风险。这是我写的关于这个主题的blog post作为背景。

    就测试 HubSpot 集成的技术性而言。 HubSpot 有documentation,它告诉您如何创建可用于测试您的集成的测试用户。

    现在,您应该编写哪些测试?

    首先,Should I do it at all?,在我看来答案是肯定的。只需您有两个活动部分,您的代码和 HubSpot 即服务。任何一个都可能改变并破坏您的集成。如果没有合适的测试,当它发生时将变得更难调试。

    现在讨论如何测试。这里有三种类型的测试会有所帮助:

    1. 单元测试。这将测试您编写的代码。在这种情况下,我会模拟来自 HubSpot 的响应,以便您测试代码但实际上并未调用 HubSpot。

    2. 集成测试。给定标签,我假设您的问题的基础。为此,我将使用一个测试帐户并检查您所期望的每个行为。

      • 创建用户
      • 更新用户等

    使用测试帐户,您可以以可控的方式执行此操作。唯一移动的部分是您对 HubSpot API 的调用及其响应。这将在您修改代码或 HubSpot 发布新版本时轻松突出问题。这是让您确信您的集成是正确的级别。在这一点上,我将验证 HubSpot 的响应、结构和价值。另外,我会检查是否执行了正确的操作(在创建或更新用户的情况下)。

    1. 端到端测试。使用 HubSpot 上的测试用户完成 Spring Boot 应用程序的流程。这当然会让您确信您的整个应用程序正在运行。但是,如果这里由于与 HubSpot 的集成导致失败,您希望相应的集成测试失败来帮助调试。

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多