diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-03-20 23:36:28 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-03-21 20:53:52 +0900 |
| commit | 2b72baccf3f1705928ab8556ef376bdb09f74e4e (patch) | |
| tree | 4db88da9e8e5d12625c995f27c902da3a34040d1 /test/assert.rb | |
| parent | 3f7cd4687fc7ec46d8a8dd6c9c2505205cbd32a8 (diff) | |
| download | mruby-2b72baccf3f1705928ab8556ef376bdb09f74e4e.tar.gz mruby-2b72baccf3f1705928ab8556ef376bdb09f74e4e.zip | |
Remove redundant content in assertion failure message and diff
Based on minitest RubyGem.
Example of before this patch:
- Assertion[1] Failed: Expected 1 to be 2
Expected: 2
Actual: 1
- Assertion[2] Failed: Expected [1, 3] to include 2
Collection: [1, 3]
Object: 2
Example of after this patch:
- Assertion[1]
Expected: 2
Actual: 1
- Assertion[2]
Expected [1, 3] to include 2.
Diffstat (limited to 'test/assert.rb')
| -rw-r--r-- | test/assert.rb | 97 |
1 files changed, 37 insertions, 60 deletions
diff --git a/test/assert.rb b/test/assert.rb index 2873eece1..d6359022f 100644 --- a/test/assert.rb +++ b/test/assert.rb @@ -25,7 +25,9 @@ def assertion_string(err, str, iso=nil, e=nil, bt=nil) msg += " (#{GEMNAME == 'mruby-test' ? 'core' : "mrbgems: #{GEMNAME}"})" if $mrbtest_assert && $mrbtest_assert.size > 0 $mrbtest_assert.each do |idx, assert_msg, diff| - msg += "\n - Assertion[#{idx}] Failed: #{assert_msg}\n#{diff}" + msg += "\n - Assertion[#{idx}]" + msg += " #{assert_msg}." if assert_msg && !assert_msg.empty? + msg += "\n#{diff}" if diff && !diff.empty? end end msg += "\nbacktrace:\n\t#{bt.join("\n\t")}" if bt @@ -70,35 +72,31 @@ def assert(str = 'Assertion failed', iso = '') end def assertion_diff(exp, act) - " Expected: #{exp.inspect}\n" + + " Expected: #{exp.inspect}\n" \ " Actual: #{act.inspect}" end -def assert_true(ret, msg = nil, diff = nil) +def assert_true(obj, msg = nil, diff = nil) if $mrbtest_assert $mrbtest_assert_idx += 1 - unless ret == true - msg ||= "Expected #{ret.inspect} to be true" - diff ||= assertion_diff(true, ret) + unless obj == true + diff ||= " Expected #{obj.inspect} to be true." $mrbtest_assert.push([$mrbtest_assert_idx, msg, diff]) end end - ret + obj end -def assert_false(ret, msg = nil, diff = nil) - unless ret == false - msg ||= "Expected #{ret.inspect} to be false" - diff ||= assertion_diff(false, ret) +def assert_false(obj, msg = nil, diff = nil) + unless obj == false + diff ||= " Expected #{obj.inspect} to be false." end - assert_true(!ret, msg, diff) - !ret + assert_true(!obj, msg, diff) end def assert_equal(exp, act_or_msg = nil, msg = nil, &block) ret, exp, act, msg = _eval_assertion(:==, exp, act_or_msg, msg, block) unless ret - msg ||= "Expected to be equal" diff = assertion_diff(exp, act) end assert_true(ret, msg, diff) @@ -107,64 +105,44 @@ end def assert_not_equal(exp, act_or_msg = nil, msg = nil, &block) ret, exp, act, msg = _eval_assertion(:==, exp, act_or_msg, msg, block) if ret - msg ||= "Expected to be not equal" - diff = assertion_diff(exp, act) + diff = " Expected #{act.inspect} to not be equal to #{exp.inspect}." end assert_true(!ret, msg, diff) end -def assert_same(exp, act_or_msg = nil, msg = nil, &block) - ret, exp, act, msg = _eval_assertion(:equal?, exp, act_or_msg, msg, block) - unless ret - msg ||= "Expected #{act.inspect} to be the same object as #{exp.inspect}" - diff = " Expected: #{exp.inspect} (class=#{exp.class}, oid=#{exp.__id__})\n" + - " Actual: #{act.inspect} (class=#{act.class}, oid=#{act.__id__})" +def assert_same(*args); _assert_same(true, *args) end +def assert_not_same(*args); _assert_same(false, *args) end +def _assert_same(affirmed, exp, act, msg = nil) + unless ret = exp.equal?(act) == affirmed + exp_str, act_str = [exp, act].map do |o| + "#{o.inspect} (class=#{o.class}, oid=#{o.__id__})" + end + diff = " Expected #{act_str} to #{'not ' unless affirmed}be the same as #{exp_str}." end assert_true(ret, msg, diff) end -def assert_not_same(exp, act_or_msg = nil, msg = nil, &block) - ret, exp, act, msg = _eval_assertion(:equal?, exp, act_or_msg, msg, block) - if ret - msg ||= "Expected #{act.inspect} to not be the same object as #{exp.inspect}" - diff = " Expected: #{exp.inspect} (class=#{exp.class}, oid=#{exp.__id__})\n" + - " Actual: #{act.inspect} (class=#{act.class}, oid=#{act.__id__})" - end - assert_true(!ret, msg, diff) -end - def assert_nil(obj, msg = nil) unless ret = obj.nil? - msg ||= "Expected #{obj.inspect} to be nil" - diff = assertion_diff(nil, obj) + diff = " Expected #{obj.inspect} to be nil." end assert_true(ret, msg, diff) end -def assert_include(collection, obj, msg = nil) - unless ret = collection.include?(obj) - msg ||= "Expected #{collection.inspect} to include #{obj.inspect}" - diff = " Collection: #{collection.inspect}\n" + - " Object: #{obj.inspect}" +def assert_include(*args); _assert_include(true, *args) end +def assert_not_include(*args); _assert_include(false, *args) end +def _assert_include(affirmed, collection, obj, msg = nil) + unless ret = collection.include?(obj) == affirmed + diff = " Expected #{collection.inspect} to #{'not ' unless affirmed}include #{obj.inspect}." end assert_true(ret, msg, diff) end -def assert_not_include(collection, obj, msg = nil) - if ret = collection.include?(obj) - msg ||= "Expected #{collection.inspect} to not include #{obj.inspect}" - diff = " Collection: #{collection.inspect}\n" + - " Object: #{obj.inspect}" - end - assert_true(!ret, msg, diff) -end - ## # Fails unless +obj+ is a kind of +cls+. def assert_kind_of(cls, obj, msg = nil) unless ret = obj.kind_of?(cls) - msg ||= "Expected #{obj.inspect} to be a kind of #{cls}, not #{obj.class}" - diff = assertion_diff(cls, obj.class) + diff = " Expected #{obj.inspect} to be a kind of #{cls}, not #{obj.class}." end assert_true(ret, msg, diff) end @@ -173,26 +151,25 @@ end # Fails unless +exp+ is equal to +act+ in terms of a Float def assert_float(exp, act, msg = nil) unless ret = check_float(exp, act) - msg ||= "Float #{exp} expected to be equal to float #{act}" - diff = assertion_diff(exp, act) + diff = " Expected |#{exp} - #{act}| (#{(exp-act).abs}) to be <= #{Mrbtest::FLOAT_TOLERANCE}." end assert_true(ret, msg, diff) end def assert_raise(*exc) msg = (exc.last.is_a? String) ? exc.pop : nil + exc = exc.empty? ? StandardError : exc.size == 1 ? exc[0] : exc begin yield rescue *exc assert_true(true) rescue Exception => e - msg ||= "Expected to raise #{exc}, not" - diff = " Class: <#{e.class}>\n" + - " Message: #{e.message}" + diff = " #{exc} exception expected, not\n" \ + " Class: <#{e.class}>\n" \ + " Message: <#{e}>" assert_true(false, msg, diff) else - msg ||= "Expected to raise #{exc} but nothing was raised." - diff = "" + diff = " #{exc} expected but nothing was raised." assert_true(false, msg, diff) end end @@ -201,9 +178,9 @@ def assert_nothing_raised(msg = nil) begin yield rescue Exception => e - msg ||= "Expected not to raise #{e} but it raised" - diff = " Class: <#{e.class}>\n" + - " Message: #{e.message}" + diff = " Exception raised:\n" \ + " Class: <#{e.class}>\n" \ + " Message: <#{e}>" assert_true(false, msg, diff) else assert_true(true) |
