2
我想測試我能捕捉到這些AWS例外:Rspec的 - 如何存根第三方例外
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
# do something
end
我Rspec的3碼:
expect_any_instance_of(S3Client).to receive(:write_s3_file).and_raise(AWS::Errors::ServerError)
但是,當我測試這個存根,我得到一個類型錯誤:
exception class/object expected
我必須包括AWS ::錯誤:: SERVERERROR?如果是這樣,我該怎麼做?我正在使用aws-sdk-v1 gem。
謝謝。
在哪一行,你得到'TypeError'? – 2014-10-31 00:48:20
../gems/rspec-mocks-3.1.3/lib/rspec/mocks/message_expectation.rb:194 – Slowfib 2014-10-31 02:11:42
你的代碼對我來說似乎很好。我唯一需要考慮的是s3client和AWS堆棧庫。只是爲了進行實驗,嘗試用默認的任何類路徑(例如任何模型)和標準錯誤的AWS :: Errors ...來替換S3Client,然後運行測試。 – Alexander 2014-10-31 02:29:43