Commit f2c77ff2 authored by Akira Yumiyama's avatar Akira Yumiyama

add assert_{true,nil,equal} methods.

parent 92cf2a0c
...@@ -11,6 +11,11 @@ def assertion_string(err, str, iso=nil, e=nil) ...@@ -11,6 +11,11 @@ def assertion_string(err, str, iso=nil, e=nil)
msg += " [#{iso}]" if iso && iso != '' msg += " [#{iso}]" if iso && iso != ''
msg += " => #{e.message}" if e msg += " => #{e.message}" if e
msg += " (mrbgems: #{GEMNAME})" if Object.const_defined?(:GEMNAME) msg += " (mrbgems: #{GEMNAME})" if Object.const_defined?(:GEMNAME)
if $mrbtest_assert && $mrbtest_assert.size > 0
$mrbtest_assert.each do |idx, str, diff|
msg += "\n - Assertion[#{idx}] Failed: #{str}\n#{diff}"
end
end
msg msg
end end
...@@ -25,8 +30,10 @@ end ...@@ -25,8 +30,10 @@ end
def assert(str = 'Assertion failed', iso = '') def assert(str = 'Assertion failed', iso = '')
print(str, (iso != '' ? " [#{iso}]" : ''), ' : ') if $mrbtest_verbose print(str, (iso != '' ? " [#{iso}]" : ''), ' : ') if $mrbtest_verbose
begin begin
if(!yield) $mrbtest_assert = []
$asserts.push(assertion_string('Fail: ', str, iso)) $mrbtest_assert_idx = 0
if(!yield || $mrbtest_assert.size > 0)
$asserts.push(assertion_string('Fail: ', str, iso, nil))
$ko_test += 1 $ko_test += 1
print('F') print('F')
else else
...@@ -37,10 +44,41 @@ def assert(str = 'Assertion failed', iso = '') ...@@ -37,10 +44,41 @@ def assert(str = 'Assertion failed', iso = '')
$asserts.push(assertion_string('Error: ', str, iso, e)) $asserts.push(assertion_string('Error: ', str, iso, e))
$kill_test += 1 $kill_test += 1
print('X') print('X')
ensure
$mrbtest_assert = nil
end end
print("\n") if $mrbtest_verbose print("\n") if $mrbtest_verbose
end end
def assertion_diff(exp, act)
" Expected: #{exp.inspect}\n" +
" Actual: #{act.inspect}"
end
def assert_true(ret, msg = nil, diff = nil)
if $mrbtest_assert
$mrbtest_assert_idx += 1
if !ret
msg = "Expected #{ret.inspect} to be true" unless msg
diff = assertion_diff(true, ret) unless diff
$mrbtest_assert.push([$mrbtest_assert_idx, msg, diff])
end
end
ret
end
def assert_equal(exp, act, msg = nil)
msg = "Expected to be equal" unless msg
diff = assertion_diff(exp, act)
assert_true(exp == act, msg, diff)
end
def assert_nil(obj, msg = nil)
msg = "Expected #{obj.inspect} to be nil" unless msg
diff = assertion_diff(nil, obj)
assert_true(obj.nil?, msg, diff)
end
## ##
# Report the test result and print all assertions # Report the test result and print all assertions
# which were reported broken. # which were reported broken.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment