クライアントレスポンス、およびエラーをスタブする - AWS SDK for Ruby

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クライアントレスポンス、およびエラーをスタブする

クライアントレスポンスとクライアントエラーをスタブする方法を学習します。AWSSDK for Ruby。

クライアントレスポンスをスタブする

レスポンスをスタブすると、AWSSDK for Ruby。ネットワークトラフィックを無効にし、クライアントはスタブされた (または疑似) データを返します。スタブされたデータを指定しない場合、クライアントは次のように返します。

  • リストは空の配列として

  • マップは空のハッシュとして

  • 数値はゼロで

  • 日付は 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 であることを意味します。

-AWSSDK for Ruby。間違った種類のデータを渡すと、ArgumentError 例外を生成します。たとえば、bucket_data への前の割り当ての代わりに、以下を使用したとします。

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

-AWSSDK for RubyArgumentError例外。

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

クライアントエラーをスタブする

エラーをスタブすることができます。AWSSDK 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