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

How can I properly test my gem that uses Fog Storage to download from AWS S3?

我看到雾 gem 有一些模拟能力,但 references/examples 似乎在这方面表现不多。我正在构建一个使用 Fog Storage 从 S3 下载文件的 gem,我想实施适当的测试,但不需要它在测试期间与 S3 实际交互-运行(s)。这可以模拟出来还是我应该创建一个 public S3 存储桶进行测试?

您应该能够在您的测试设置中执行 Fog.mock!,随后将以模拟方式进行后续调用,无需额外工作。但是,我会指出,您需要包括您可能拥有的所有交互。即,当您第一次使用模拟的雾连接开始时,不存在目录(S3 术语中的存储桶),因此无论是在测试中还是在设置中,您都应该创建一个用于您的对象的目录。从那里你应该能够 create/destroy/etc 而无需每次接触 S3。更确切地说,您当然可以在测试环境中使用明显伪造的 S3 凭据(这样一来,如果您忘记包含 mock! 调用,例如,它就不会 运行 在您的真实内容上) .希望对您有所帮助!