Sha256: 4cfdf561ca509d0cf4aa148bd5e3f638f00fb19e6617747d088cdc8606c8ab1a

Contents?: true

Size: 1.65 KB

Versions: 9

Compression:

Stored size: 1.65 KB

Contents

require "spec/spec_helper"

module RR
  module Errors
    describe RRError, "#backtrace" do
      before do
        @original_trim_backtrace = RR::Space.trim_backtrace
      end
      after do
        RR::Space.trim_backtrace = @original_trim_backtrace
      end

      it "does not include the rr library files when trim_backtrace is true" do
        RR::Space.trim_backtrace = true

        error = nil
        begin
          obj = Object.new
          mock(obj).foobar
          RR::Space.verify_double(obj, :foobar)
        rescue RRError=> e
          error = e
        end
        backtrace = error.backtrace.join("\n")

        backtrace.should_not include("lib/rr")
      end

      it "includes the rr library files when trim_backtrace is false" do
        RR::Space.trim_backtrace = false

        error = nil
        begin
          obj = Object.new
          mock(obj).foobar
          RR::Space.verify_double(obj, :foobar)
        rescue RRError=> e
          error = e
        end
        backtrace = error.backtrace.join("\n")

        backtrace.should include("lib/rr")
      end

      it "returns custom backtrace when backtrace is set" do
        error = RRError.new
        custom_backtrace = caller
        error.backtrace = custom_backtrace
        error.backtrace.should == custom_backtrace
      end

      it "returns normal backtrace when backtrace is not set" do
        error = nil
        expected_line = __LINE__ + 2
        begin
          raise RRError
        rescue RRError => e
          error = e
        end
        error.backtrace.first.should include(__FILE__)
        error.backtrace.first.should include(expected_line.to_s)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rr-0.4.1 spec/rr/errors/rr_error_spec.rb
rr-0.4.6 spec/rr/errors/rr_error_spec.rb
rr-0.4.8 spec/rr/errors/rr_error_spec.rb
rr-0.4.7 spec/rr/errors/rr_error_spec.rb
rr-0.4.4 spec/rr/errors/rr_error_spec.rb
rr-0.4.2 spec/rr/errors/rr_error_spec.rb
rr-0.4.5 spec/rr/errors/rr_error_spec.rb
rr-0.4.0 spec/rr/errors/rr_error_spec.rb
rr-0.4.3 spec/rr/errors/rr_error_spec.rb