【问题标题】:Testing a REST API with authenticated endpoints使用经过身份验证的端点测试 REST API
【发布时间】:2017-07-12 10:51:11
【问题描述】:

我正在为 NodeJS API(在 hapi.js 上)设置测试,我不确定测试经过身份验证的 API 的典型约定是什么。

目前 route-handlersauthenticationauthorization 都在单独的模块中,所以我考虑单独测试每个模块而不是而不是在测试中调用 HTTP 端点(最终会触及所有身份验证/授权/处理程序逻辑)。

但是,根据我从sometestingguides 看到的情况,对于如何/什么测试似乎有不同的看法。意见似乎是:

  1. 调用 API 端点,但只断言返回状态
  2. 调用 API 端点,断言返回状态和数据

如果我确实调用了 API 端点,那是否意味着我在每个用例中都需要一个有效的身份验证令牌 - 或者禁用身份验证以进行测试?

【问题讨论】:

    标签: node.js rest api unit-testing authentication


    【解决方案1】:

    这取决于有多少端点需要相同的身份验证。如果它们都具有相同的身份验证和代码路径,那么您可以进行一些身份验证测试。他们可能会测试:

    1. 存在身份验证
    2. 缺少身份验证
    3. 授权无效

    您可以使用相同的端点编写这 3 个测试。如果它们共享相同的身份验证代码路径,则没有真正的理由测试其他端点。事实上,授权代码应该与每个端点的功能分开。

    除了身份验证测试之外,您还可以针对每个具有有效身份验证的端点进行一些测试。

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 2020-08-02
      • 1970-01-01
      • 2013-01-27
      • 2022-11-01
      • 2018-07-04
      • 2019-09-25
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多