如何正确测试使用Fog Storage从AWS S3下载的gem?

时间:2015-06-28 23:11:08

标签: ruby rspec amazon-s3 fog

我看到Fog gem有一些模拟能力,但参考/例子似乎在这方面没有太多表现。我正在构建一个使用Fog Storage从中下载文件的gem,我希望实现正确的测试,但不要求它在测试运行期间实际与S3交互。这可以被嘲笑,还是应该创建一个公共S3存储桶进行测试?

1 个答案:

答案 0 :(得分:4)

您应该能够在测试设置中执行Fog.mock!,然后在没有额外工作的情况下以模拟方式进行后续调用。但是,我要注意,您需要包含您可能拥有的所有互动。即,当您第一次使用模拟雾连接时,不存在任何目录(S3用语中的存储桶),因此无论是在测试中还是在设置中,您都应该创建一个用于对象的目录。从那里你应该能够创建/销毁/等,而不是每次触摸S3。更确切地说,您当然可以明确地为测试环境提供虚假的S3凭证(例如,如果您忘记包含模拟!调用,它将不会运行您的真实内容)。希望有所帮助!