【问题标题】:How to handle API call rate limit when unit testing?单元测试时如何处理 API 调用速率限制?
【发布时间】:2021-06-05 13:44:39
【问题描述】:

我正在使用 YouTube 的 API 构建一个应用程序。这是我第一次使用正确的 API,所以我不完全了解它是如何工作的(因此我在这里)。

每次我为应用程序编写代码时,我发现我的单元测试很快就达到了极限。人们通常如何处理这样的情况?这是 not 单元测试的情况吗?或者我可以做些什么来防止这个问题?

对于熟悉 YouTube API 的任何人,基于 this,我每次测试只请求检索 1-2 个视频,我目前有大约 10 个测试。如果我是正确的,假设我每次通话请求 2 个视频,我应该能够运行测试 10,000/20 = 500 ,不是吗?

【问题讨论】:

  • 我建议不要在 real API 上运行单元测试(以及自动化测试套件);这是因为每个 real 端点调用都附加了一个quota cost。而是在 mocked API 上运行您的测试套件(您不必模拟整个 API 端点集,只需模拟那些您实际使用的端点)。
  • 那太好了,谢谢你,Stvar。是的,我只是在寻找关于你认为最好的建议,所以在这种情况下,我将形成一些模拟数据。
  • 只是想知道,就我所写的有关 YT 的 API 工作原理的内容而言,我的想法是否正确?你不知道也没关系,或者我没有提供足够的信息,我不会失眠。
  • 请阅读this answer of mine
  • 再次感谢您,Stvar,这很有道理。是的,我想我会制作一些模拟数据/缓存我收到的内容并重用它们。我很感激这些信息????

标签: api youtube youtube-api


【解决方案1】:

我会稍微不同地运行单元测试。我会每隔一小时左右运行一次作业,以达到 4-5 个最常见的场景或端点,并将它们保存到各自的文件中。

当您的单元测试运行时,它们不会为所有测试调用 API。相反,他们从文件中加载输出并进行处理。这样,您仍在检查处理 API 响应的代码是否仍然正常执行。您只是没有实时获得 API 响应。我会这样做以减少对 API 端点的命中。

【讨论】:

  • 很遗憾,@zedfoxus,您的提议非常违反管理 YouTube 数据 API 使用的文档规范:DTOS,第 III.E.4 节,刷新、存储和显示 API 数据.
  • 谢谢,@stvar。 developers.google.com/youtube/terms/developer-policies 是我根据您的评论查看的政策。 OP 必须自己决定他们推断什么以及如何进行单元测试。根据我对这些政策的推断,我会像我回答的那样进行单元测试。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2019-05-13
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
相关资源
最近更新 更多