2013-03-08 95 views
13

我正在尝试编写一套自动化集成测试来测试我的C#客户端库调用Yahoo Fantasy Sports API。几个API调用需要OAuth令牌,这是我遇到一些困难的地方。我可以使用Web浏览器生成访问密钥和机密,然后在我的测试代码中传递这些内容,但令牌在一小时后过期,所以我需要手动重新生成这些内容并随时更新测试配置,以便随时运行试验。需要OAuth令牌的单元测试API

当需要OAuth令牌时,是否有编写API集成测试的最佳实践?

+0

你不能自动生成密钥吗?有没有REST API?或者你可以在代码中执行http请求。 – blank 2013-03-08 15:40:36

+0

@Sean,你是如何最终嘲笑Yahoo Fantasy Sports API的?你有没有创建一个代码框架嘲笑它?我也需要模拟API,我想了解你是如何做到的。 – 2014-04-11 15:18:49

+0

我从来没有得到充分的嘲弄。我有一个框架正在进行中,您可以在这里查看:https://github.com/sconno05/yahoo-fantasy-football-tools。我最终将这些标记置于环境变量中,但仍然需要通过Web管理页面重新生成这些标记。 – Sean 2014-04-14 16:43:43

回答

3

通常,这样的api提供了一种获取身份验证令牌的方式,而无需使用浏览器。我不确定雅虎体育是否是其中之一。

通常你必须创建一个应用程序来访问OAuth2系统,然后他们给你一个ClientID和ClientSecret,然后你点击一个令牌URL并接收到一个小时有效的访问令牌。

虽然你可能想要考虑没有集成测试。如果我是你,我会简单地嘲笑Api响应并在测试中使用它。因此,请为每个呼叫提供一个响应样本,然后创建一个虚假响应,无论何时您点击该响应都会返回该响应。你可以继续运行你的测试。

您需要回答的问题是:我测试了什么?你正在测试第三方APi还是你想测试你自己的代码?

此外,不要忘记每个API允许在特定的时间窗口内被击中特定次数。还有一个假的原因,我会说

+0

如果我正在测试实现OAuth的第三方API,该怎么办? – 2017-05-19 06:01:21