【问题标题】:How do I test file uploading to remote server in Ruby如何在 Ruby 中测试文件上传到远程服务器
【发布时间】:2012-10-02 03:06:32
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这取决于你想要什么。您是否想要一个功能测试来确保使用您想要的参数调用 POST?或者您是否要进行完整的集成测试,以测试文件是否已完全上传。通常我认为功能测试就足够了。
  • 其实没关系。至少我想要其中之一。理想情况下 - 两者兼而有之。

标签: ruby-on-rails ruby


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多