mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Update to ruby/spec@6f38a82
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b864bd05bf
commit
4fbb9aa3cb
145 changed files with 2847 additions and 2596 deletions
|
@ -66,6 +66,18 @@ describe "An ensure block inside a begin block" do
|
|||
:ensure
|
||||
end.should == :begin
|
||||
end
|
||||
|
||||
it "sets exception cause if raises exception in block and in ensure" do
|
||||
-> {
|
||||
begin
|
||||
raise "from block"
|
||||
ensure
|
||||
raise "from ensure"
|
||||
end
|
||||
}.should raise_error(RuntimeError, "from ensure") do |e|
|
||||
e.cause.message.should == "from block"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "The value of an ensure expression," do
|
||||
|
@ -117,6 +129,34 @@ describe "An ensure block inside a method" do
|
|||
it "has an impact on the method's explicit return value" do
|
||||
@obj.explicit_return_in_method_with_ensure.should == :ensure
|
||||
end
|
||||
|
||||
it "has an impact on the method's explicit return value from rescue if returns explicitly" do
|
||||
@obj.explicit_return_in_rescue_and_explicit_return_in_ensure.should == "returned in ensure"
|
||||
end
|
||||
|
||||
it "has no impact on the method's explicit return value from rescue if returns implicitly" do
|
||||
@obj.explicit_return_in_rescue_and_implicit_return_in_ensure.should == "returned in rescue"
|
||||
end
|
||||
|
||||
it "suppresses exception raised in method if returns value explicitly" do
|
||||
@obj.raise_and_explicit_return_in_ensure.should == "returned in ensure"
|
||||
end
|
||||
|
||||
it "suppresses exception raised in rescue if returns value explicitly" do
|
||||
@obj.raise_in_rescue_and_explicit_return_in_ensure.should == "returned in ensure"
|
||||
end
|
||||
|
||||
it "overrides exception raised in rescue if raises exception itself" do
|
||||
-> {
|
||||
@obj.raise_in_rescue_and_raise_in_ensure
|
||||
}.should raise_error(RuntimeError, "raised in ensure")
|
||||
end
|
||||
|
||||
it "suppresses exception raised in method if raises exception itself" do
|
||||
-> {
|
||||
@obj.raise_in_method_and_raise_in_ensure
|
||||
}.should raise_error(RuntimeError, "raised in ensure")
|
||||
end
|
||||
end
|
||||
|
||||
describe "An ensure block inside a class" do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue