aboutsummaryrefslogtreecommitdiffstats
path: root/spec/rubyspec/core/exception/message_spec.rb
blob: 7eee6d99def7aecc7471e9281f01c50e87704c22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/common', __FILE__)

describe "Exception#message" do
  it "returns the class name if there is no message" do
    Exception.new.message.should == "Exception"
  end

  it "returns the message passed to #initialize" do
    Exception.new("Ouch!").message.should == "Ouch!"
  end

  it "calls #to_s on self" do
    exc = ExceptionSpecs::OverrideToS.new("you won't see this")
    exc.message.should == "this is from #to_s"
  end

  context "when #backtrace is redefined" do
    it "returns the Exception message" do
      e = Exception.new
      e.message.should == 'Exception'

      def e.backtrace; []; end
      e.message.should == 'Exception'
    end
  end
end