module Test::Unit::RR::Adapter

Public Class Methods

cleanup_rr() click to toggle source
# File lib/test/unit/rr.rb, line 42
def cleanup_rr
  ::RR.verify
end
included(mod) click to toggle source
# File lib/test/unit/rr.rb, line 34
def included(mod)
  mod.module_eval do
    setup :before => :prepend
    def setup_rr
      ::Test::Unit::RR::Adapter.reset
    end

    cleanup :after => :append
    def cleanup_rr
      ::RR.verify
    end

    exception_handler do |test_case, exception|
      target_p = exception.is_a?(::RR::Errors::RRError)
      if target_p
        test_case.problem_occurred
        test_case.add_failure(exception.message, exception.backtrace)
      end
      handled = target_p
      handled
    end
  end
end
reset() click to toggle source
# File lib/test/unit/rr.rb, line 58
def reset
  ::RR.reset
  ::RR.trim_backtrace = true
end
setup_rr() click to toggle source
# File lib/test/unit/rr.rb, line 37
def setup_rr
  ::Test::Unit::RR::Adapter.reset
end

Public Instance Methods

assert_received(subject, &block) click to toggle source
# File lib/test/unit/rr.rb, line 64
def assert_received(subject, &block)
  block.call(received(subject)).call
end
assert_rr() { || ... } click to toggle source

Verify double declarations by RR in block. It is useful to clear your double declarations scope.

@example Success case

assert_rr do
  subject = Object.new
  assert_rr do
    mock(subject).should_be_called
    subject.should_be_called
  end
end

@example Failure case

assert_rr do
  subject = Object.new
  assert_rr do
    mock(subject).should_be_called
    # subject.should_be_called
  end
end

@yield

declares your doubles and uses the doubles in the block. The
doubles are verified before and after the block is called.
# File lib/test/unit/rr.rb, line 92
def assert_rr
  begin
    ::RR.verify
  ensure
    ::Test::Unit::RR::Adapter.reset
  end
  result = yield
  begin
    ::RR.verify
  ensure
    ::Test::Unit::RR::Adapter.reset
  end
  result
end