Sha256: 2287c1911fcd18956fbc5ed141f520f3b137e2af93b3ec1236276a1a33126145

Contents?: true

Size: 1.59 KB

Versions: 3

Compression:

Stored size: 1.59 KB

Contents

dir = File.dirname(__FILE__)
require "#{dir}/../../example_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

3 entries across 3 versions & 1 rubygems

Version Path
rr-0.1.6 examples/rr/errors/rr_error_example.rb
rr-0.1.4 examples/rr/errors/rr_error_example.rb
rr-0.1.5 examples/rr/errors/rr_error_example.rb