【发布时间】:2015-06-28 23:11:07
【问题描述】:
我看到 Fog gem 有一些模拟能力,但参考/示例似乎在这方面没有太多展示。我正在构建一个使用 Fog Storage 从 S3 下载文件的 gem,我想实施适当的测试,但不需要它在测试运行期间实际与 S3 交互。这可以模拟出来还是我应该创建一个公共 S3 存储桶进行测试?
【问题讨论】:
我看到 Fog gem 有一些模拟能力,但参考/示例似乎在这方面没有太多展示。我正在构建一个使用 Fog Storage 从 S3 下载文件的 gem,我想实施适当的测试,但不需要它在测试运行期间实际与 S3 交互。这可以模拟出来还是我应该创建一个公共 S3 存储桶进行测试?
【问题讨论】:
您应该能够在您的测试设置中执行Fog.mock!,随后将以模拟方式进行后续调用,无需额外工作。但是,我会注意到,您需要包含所有可能进行的交互。即,当您第一次从模拟雾连接开始时,不存在任何目录(S3 术语中的存储桶),因此无论是在测试中还是在设置中,您都应该为您的对象创建一个目录。从那里你应该能够在不接触 S3 的情况下创建/销毁/等。更确切地说,您当然可以为测试环境使用明显伪造的 S3 凭据(这样,如果您忘记包含 mock! 调用,例如,它就不会在您的真实东西上运行)。希望对您有所帮助!
【讨论】: