summaryrefslogtreecommitdiff
path: root/spec/ruby/core/exception/message_spec.rb
blob: 8d7476126e2a09935336239dc8a5d319324579e0 (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_relative '../../spec_helper'
require_relative 'fixtures/common'

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