diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-02-17 20:20:03 -0800 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-02-17 20:20:03 -0800 |
| commit | 7ba3275bf70fa62a34ea9015e2b03eefd180afe9 (patch) | |
| tree | 9073bf7da979117a1e18803d2797e377f032349c /test | |
| parent | 3a78093b45c176baae7b13d47ed08e135aad1123 (diff) | |
| parent | f2c77ff2126b6a0b04c7d870b702ee240619f4ce (diff) | |
| download | mruby-7ba3275bf70fa62a34ea9015e2b03eefd180afe9.tar.gz mruby-7ba3275bf70fa62a34ea9015e2b03eefd180afe9.zip | |
Merge pull request #849 from iij/pr-mrbtest-assert-ext
add assert_{true,nil,equal} methods.
Diffstat (limited to 'test')
| -rw-r--r-- | test/assert.rb | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/test/assert.rb b/test/assert.rb index 218a911d4..9f3231cd4 100644 --- a/test/assert.rb +++ b/test/assert.rb @@ -11,6 +11,11 @@ def assertion_string(err, str, iso=nil, e=nil) msg += " [#{iso}]" if iso && iso != '' msg += " => #{e.message}" if e 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 end @@ -25,8 +30,10 @@ end def assert(str = 'Assertion failed', iso = '') print(str, (iso != '' ? " [#{iso}]" : ''), ' : ') if $mrbtest_verbose begin - if(!yield) - $asserts.push(assertion_string('Fail: ', str, iso)) + $mrbtest_assert = [] + $mrbtest_assert_idx = 0 + if(!yield || $mrbtest_assert.size > 0) + $asserts.push(assertion_string('Fail: ', str, iso, nil)) $ko_test += 1 print('F') else @@ -37,10 +44,41 @@ def assert(str = 'Assertion failed', iso = '') $asserts.push(assertion_string('Error: ', str, iso, e)) $kill_test += 1 print('X') + ensure + $mrbtest_assert = nil end print("\n") if $mrbtest_verbose 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 # which were reported broken. |
