2

我正在实现将文件发布(上传)到远程服务器:

RestClient.post(server_url, :name_of_file_param => File.new('/myfile.txt','r'))

我很好奇测试它:是否有可能以某种方式测试它?或者也许有一个在线服务允许通过 http 上传文件?

请注意,这server_url是一个远程服务器,它不是 Rails的应用程序。

4

1 回答 1

1

一个简单的方法是进行功能测试。为此,您通常会模拟网络连接。有关想法,请查看用于模拟 HTTP 连接及其结果的 VCR gem:https ://github.com/myronmarston/vcr

更详细的方法是编写往返测试,在其中上传文件,然后下载文件,并比较两者以确保它们相同。这是一个集成测试。它不使用模拟。某些 API 可能会提供交付证明,例如通过在 HTTP 响应中返回文件校验和;如果可以,请使用这些。

如果您的数据价值很高,我建议您进行集成测试,并进行一些负载测试和基准测试。这是为了确保数据在您期望的时间内安全到达。当我为一个真实的应用程序这样做时,集成测试确实发现了远程服务器的问题,影响了大约 1% 的文件。

于 2012-10-01T17:18:01.680 回答