diff options
Diffstat (limited to 'spec/ruby/core/kernel/at_exit_spec.rb')
| -rw-r--r-- | spec/ruby/core/kernel/at_exit_spec.rb | 37 |
1 files changed, 6 insertions, 31 deletions
diff --git a/spec/ruby/core/kernel/at_exit_spec.rb b/spec/ruby/core/kernel/at_exit_spec.rb index 21149f965b..fdb0eaf34c 100644 --- a/spec/ruby/core/kernel/at_exit_spec.rb +++ b/spec/ruby/core/kernel/at_exit_spec.rb @@ -1,42 +1,17 @@ require_relative '../../spec_helper' require_relative 'fixtures/classes' +require_relative '../../shared/kernel/at_exit' describe "Kernel.at_exit" do - it "is a private method" do - Kernel.should have_private_instance_method(:at_exit) - end - - it "runs after all other code" do - ruby_exe("at_exit {print 5}; print 6").should == "65" - end - - it "runs in reverse order of registration" do - code = "at_exit {print 4};at_exit {print 5}; print 6; at_exit {print 7}" - ruby_exe(code).should == "6754" - end + it_behaves_like :kernel_at_exit, :at_exit - it "allows calling exit inside at_exit handler" do - code = "at_exit {print 3}; at_exit {print 4; exit; print 5}; at_exit {print 6}" - ruby_exe(code).should == "643" + it "is a private method" do + Kernel.private_instance_methods(false).should.include?(:at_exit) end - it "gives access to the last raised exception" do - code = <<-EOC - at_exit do - puts "The exception matches: \#{$! == $exception}" - end - - begin - raise "foo" - rescue => $exception - raise - end - EOC - - result = ruby_exe(code, args: "2>&1", escape: true) - result.should =~ /The exception matches: true/ + it "raises ArgumentError if called without a block" do + -> { at_exit }.should.raise(ArgumentError, "called without a block") end - end describe "Kernel#at_exit" do |
