module BitGirder::Testing::AssertMethods

Public Instance Methods

assert( passed, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 32
def assert( passed, msg = nil )
    fail_test( msg ) unless passed
end
assert_equal( expct, actual, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 40
def assert_equal( expct, actual, msg = nil )
    
    unless expct == actual
        fail_test( msg || "expct != actual (#{expct} != #{actual})" )
    end
end
assert_equal_i( expct, actual, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 53
def assert_equal_i( expct, actual, msg = nil )
    assert_equal_meth( expct, actual, :to_i, msg )
end
assert_equal_meth( expct_obj, actual_obj, meth, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 47
def assert_equal_meth( expct_obj, actual_obj, meth, msg = nil )
    
    not_nil( meth, :meth )
    assert_equal( expct_obj.send( meth ), actual_obj.send( meth ), msg )
end
assert_equal_s( expct, actual, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 57
def assert_equal_s( expct, actual, msg = nil )
    assert_equal_meth( expct, actual, :to_s, msg )
end
assert_false( val, *argv ) click to toggle source
# File lib/bitgirder/testing.rb, line 36
def assert_false( val, *argv )
    assert( ! val, *argv )
end
assert_match( pat, str, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 65
def assert_match( pat, str, msg = nil )

    msg ||= lambda { "#{str.inspect} does not match #{pat}" }
    assert( pat.match( str ), msg )
end
assert_nil( val, msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 61
def assert_nil( val, msg = nil )
    assert( val == nil, msg ||= "Expected nil but got #{val}" )
end
assert_raised( *excpts ) { || ... } click to toggle source
# File lib/bitgirder/testing.rb, line 80
    def assert_raised( *excpts )
        
        res = nil

        pat = get_expect_raised_pat( excpts )

        begin
            yield
        rescue *excpts => e; # got an expected exception
            res = e
        rescue Exception => e
            raise e
        end

        if pat && res
            pat.match( res.message ) or 
                raise "Message #{res.message.inspect} does not match #{pat}"
        end

#        res or raise "No expected exception raised"
        res or fail_test( "Expected raise of one of #{excpts.inspect}" )
    end
fail_test( msg = nil ) click to toggle source
# File lib/bitgirder/testing.rb, line 26
def fail_test( msg = nil )
    
    msg = msg.call if msg.is_a?( Proc )
    raise AssertionFailure.new( msg )
end
get_expect_raised_pat( excpts ) click to toggle source
# File lib/bitgirder/testing.rb, line 71
def get_expect_raised_pat( excpts )
        
    case excpts[ 0 ]
        when String then Regexp.new( /^#{Regexp.quote( excpts.shift )}$/ )
        when Regexp then excpts.shift
        else nil
    end
end