所以在我的代码中我有这个方法我试图测试:
# checks if a file already exists on S3 def file_exists?(storage_key) begin s3_resource.bucket(@bucket).object(storage_key).exists? rescue Aws::S3::Errors::Forbidden => e false end end
现在我试图制作两个测试用例 – 一个用于文件存在时,一个用于何时不存在.
专注于失败案例.我想要存根存在?提出Aws :: S3 :: Errors :: Forbidden错误以便file_exists?方法将返回false.
这是我的测试代码的样子:
it "returns false if the file doesn't already exist" do allow_any_instance_of(Aws::S3::Object).to receive(:exists?).and_raise( Aws::S3::Errors::Forbidden ) expect(instance.file_exists?('foo')).to be false end
运行此测试我看到:
wrong number of arguments (given 0,expected 2) # ./lib/s3_client_builder.rb:48:in `file_exists?'
真的不清楚这里发生了什么,因为file_exists?方法肯定没有2的arity也不存在?方法我是顽固的.
为了诊断这个,我在begin块中放了一个断点.我尝试运行< object> .exists?行并得到相同的错误.
解决方法
原来问题是:
and_raise( Aws::S3::Errors::Forbidden )
运行此操作显示相同的错误:
raise(Aws::S3::Errors::Forbidden)
这是什么工作:
raise(Aws::S3::Errors::Forbidden.new(nil,nil))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。