Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中对不同服务的Oauth进行单元测试的方法?_Ruby_Unit Testing - Fatal编程技术网

在ruby中对不同服务的Oauth进行单元测试的方法?

在ruby中对不同服务的Oauth进行单元测试的方法?,ruby,unit-testing,Ruby,Unit Testing,当90%的时间我在构建Oauth连接类时,我实际上需要登录到远程服务,那么在编写单元测试方面有什么最佳实践吗 我正在构建一个rubygem,它可以登录到Twitter/Google/MySpace等网站,最困难的部分是确保我拥有适合该特定提供商的设置,我想为此编写测试 有推荐的方法吗?如果我做了模拟或存根,我仍然需要花90%的时间来考虑如何使用该服务,并且最终会在事后而不是之前编写测试 另一方面,如果我为每个Oauth提供者创建了测试API密钥,并且我只是将其用于gem的测试目的,那么在测试中将

当90%的时间我在构建Oauth连接类时,我实际上需要登录到远程服务,那么在编写单元测试方面有什么最佳实践吗

我正在构建一个rubygem,它可以登录到Twitter/Google/MySpace等网站,最困难的部分是确保我拥有适合该特定提供商的设置,我想为此编写测试

有推荐的方法吗?如果我做了模拟或存根,我仍然需要花90%的时间来考虑如何使用该服务,并且最终会在事后而不是之前编写测试


另一方面,如果我为每个Oauth提供者创建了测试API密钥,并且我只是将其用于gem的测试目的,那么在测试中将API密钥和机密保留在普通视图中有什么问题吗?所以其他人也可以更现实地测试它。

在集成测试中使用实时服务没有什么错

不过,您应该在单元测试中完全删除oauth部分

如果您计划对正在编写的代码进行开源,那么在代码中保留API键可能不是一个好主意,因为当gem变得流行并且人们频繁运行测试时,您可能会遇到API使用限制或速率限制,这将导致意外的测试失败