清除客户端响应和错误 - 适用于 Ruby 的 Amazon 开发工具包
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

清除客户端响应和错误

了解如何在Amazon适 SDK for Ruby 应用程序。

清除客户端响应

当您存根响应时,Amazon适 SDK for Ruby 禁用网络流量,并且客户端会返回被清除的 (或伪造的) 数据。如果您未提供被清除的数据,则客户端会返回:

  • 作为空数组的列表

  • 作为空哈希的映射

  • 数值 0

  • 日期 now

以下示例返回 Amazon S3 存储桶列表的被清除的名称。

require 'aws-sdk' s3 = Aws::S3::Client.new(stub_responses: true) bucket_data = s3.stub_data(:list_buckets, :buckets => [{name:'aws-sdk'}, {name:'aws-sdk2'}]) s3.stub_responses(:list_buckets, bucket_data) bucket_names = s3.list_buckets.buckets.map(&:name) # List each bucket by name bucket_names.each do |name| puts name end

运行此代码将显示以下内容。

aws-sdk aws-sdk2
注意

在您提供任何被清除的数据后,默认值将不再应用于任何剩余的实例属性。这意味着在上一个示例中,剩余实例属性 creation_date 不是 now,而是 nil

这些区域有:Amazon适 SDK for Ruby 会验证您的被清除的数据。如果您传入的数据的类型错误,则会引发 ArgumentError 异常。例如,如果您使用以下内容,而不是 bucket_data 以前的分配:

bucket_data = s3.stub_data(:list_buckets, buckets:['aws-sdk', 'aws-sdk2'])

这些区域有:Amazon适 SDK for Ruby 引发了ArgumentError例外。

expected params[:buckets][0] to be a hash expected params[:buckets][1] to be a hash

清除客户端错误

您还可以清除错误,Amazon适 SDK for Ruby 为特定方法引发。以下示例显示了 Caught Timeout::Error error calling head_bucket on aws-sdk

require 'aws-sdk' s3 = Aws::S3::Client.new(stub_responses: true) s3.stub_responses(:head_bucket, Timeout::Error) begin s3.head_bucket({bucket: 'aws-sdk'}) rescue Exception => ex puts "Caught #{ex.class} error calling 'head_bucket' on 'aws-sdk'" end