C# 需要OAuth令牌的单元测试API

C# 需要OAuth令牌的单元测试API,c#,unit-testing,oauth,yahoo,C#,Unit Testing,Oauth,Yahoo,我正在尝试编写一套自动化集成测试,以测试对客户端的C#客户端库调用。有几个API调用需要OAuth令牌,这正是我遇到一些困难的地方。我可以使用web浏览器生成访问密钥和密码,然后在测试代码中传递这些密钥和密码,但令牌在一小时后过期,因此我需要手动重新生成这些密钥和密码,并在任何时候运行测试时更新测试配置 当需要OAuth令牌时,是否有编写API集成测试的最佳实践?通常,此类API提供了一种无需使用浏览器即可获取身份验证令牌的方法。我不确定雅虎体育是否是其中之一 通常,您必须创建一个应用程序来访问

我正在尝试编写一套自动化集成测试,以测试对客户端的C#客户端库调用。有几个API调用需要OAuth令牌,这正是我遇到一些困难的地方。我可以使用web浏览器生成访问密钥和密码,然后在测试代码中传递这些密钥和密码,但令牌在一小时后过期,因此我需要手动重新生成这些密钥和密码,并在任何时候运行测试时更新测试配置


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

通常,此类API提供了一种无需使用浏览器即可获取身份验证令牌的方法。我不确定雅虎体育是否是其中之一

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

您可能想考虑根本不进行集成测试。如果我是你,我会简单地模拟Api响应,并在测试中使用它。所以,gt为每个调用创建一个响应样本,然后简单地创建一个假响应,每当您点击它时,它都会返回该响应。然后仍然可以运行测试

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


另外,不要忘记每个api都允许在特定的时间窗口内被命中一定次数。还有一个伪造它的理由,我想说

你不能自动生成密钥吗?有一个restapi吗?或者你可以在你必须的代码中执行http请求。@Sean,你是如何模仿Yahoo Fantasy Sports API的?您是否创建了模拟它的代码框架?我也需要模拟API,我想了解你是如何做到的。我从来没有能够完全模拟它。我有一个正在进行的框架,您可以在此处查看:。我最终将令牌放在环境变量中,但仍然需要通过web管理页面重新生成它们。您可以从ServiceStack AuthTests本身了解身份验证测试-您可以在测试组的initialize方法中创建访问令牌,但这至少会带来一个问题。如果您的测试花费的时间超过令牌的生命周期(希望不是这样),该怎么办?我来这里的目的实际上是对访问远程API的客户机进行单元测试。我正在努力为别人的API构建一个模拟服务。我想在这里看到答案。如果我正在测试实现OAuth的第三方api呢