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