Module: Test::Unit::TestCasePendingSupport

Included in:
TestCase
Defined in:
lib/test/unit/pending.rb

Instance Method Summary collapse

Instance Method Details

#pend(message = nil, &block) ⇒ Object

Marks the test or part of the test is pending.

Example:

def test_pending
  pend  # Not reached here

end

def test_pending_with_here
  pend do
    # Ran here
    # Fails if the block doesn't raise any error.
    # Because it means the block is passed unexpectedly.
  end  # Reached here

end


81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/test/unit/pending.rb', line 81

def pend(message=nil, &block)
  message ||= "pended."
  if block_given?
    pending = nil
    begin
      yield
    rescue Exception
      pending = Pending.new(name, filter_backtrace(caller), message,
                            :method_name => @method_name)
      add_pending(pending)
    end
    unless pending
      flunk("Pending block should not be passed: #{message}")
    end
  else
    raise PendedError.new(message)
  end
end