Thursday 15 April 2010

ruby - Rspec - How to stub a 3rd party exception -



ruby - Rspec - How to stub a 3rd party exception -

i'm trying test i'm able capture these aws exceptions:

begin s3_client = s3client.new s3_file = s3_client.write_s3_file(bucket, file_name, file_contents) rescue aws::errors::servererror, aws::errors::clienterror => e # end

my rspec 3 code:

expect_any_instance_of(s3client).to receive(:write_s3_file).and_raise(aws::errors::servererror)

but when test stub, typeerror:

exception class/object expected

do have include aws::errors::servererror? if so, how that? i'm using aws-sdk-v1 gem.

thanks.

i build in port, , inject stubbed out object dying throw error. allow me explain:

class imgservice def set_client(client=s3client.new) @client = client end def client @client ||= s3client.new end def write(bucket, file_name, file_contents) begin @client.write_s3_file(bucket, file_name, file_contents) rescue aws::errors::servererror, aws::errors::clienterror => e # end end end

test:

describe "rescuing aws::error" before :each @fake_client = double("fake client") allow(@fake_client).to receive(:write_s3_file).and_raise(aws::errors::servererror) @img_service = imgservice.new @img_service.set_client(@fake_client) end # ... end

ruby amazon-web-services rspec rspec3

No comments:

Post a Comment