1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
This commit is contained in:
Benoit Daloze 2019-07-27 12:40:09 +02:00
parent a06301b103
commit 5c276e1cc9
1247 changed files with 5316 additions and 5028 deletions

View file

@ -4,10 +4,10 @@ require_relative '../../shared/hash/key_error'
describe "Hash#fetch" do
context "when the key is not found" do
it_behaves_like :key_error, ->(obj, key) { obj.fetch(key) }, Hash.new(a: 5)
it_behaves_like :key_error, ->(obj, key) { obj.fetch(key) }, {}
it_behaves_like :key_error, ->(obj, key) { obj.fetch(key) }, Hash.new { 5 }
it_behaves_like :key_error, ->(obj, key) { obj.fetch(key) }, Hash.new(5)
it_behaves_like :key_error, -> obj, key { obj.fetch(key) }, Hash.new(a: 5)
it_behaves_like :key_error, -> obj, key { obj.fetch(key) }, {}
it_behaves_like :key_error, -> obj, key { obj.fetch(key) }, Hash.new { 5 }
it_behaves_like :key_error, -> obj, key { obj.fetch(key) }, Hash.new(5)
it "formats the object with #inspect in the KeyError message" do
-> {
@ -31,14 +31,14 @@ describe "Hash#fetch" do
end
it "gives precedence to the default block over the default argument when passed both" do
lambda {
-> {
@result = {}.fetch(9, :foo) { |i| i * i }
}.should complain(/block supersedes default value argument/)
@result.should == 81
end
it "raises an ArgumentError when not passed one or two arguments" do
lambda { {}.fetch() }.should raise_error(ArgumentError)
lambda { {}.fetch(1, 2, 3) }.should raise_error(ArgumentError)
-> { {}.fetch() }.should raise_error(ArgumentError)
-> { {}.fetch(1, 2, 3) }.should raise_error(ArgumentError)
end
end