diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-01-05 20:41:09 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-01-05 20:41:09 +0900 |
| commit | 6f395a58d2a1f2e5fdfaf2933ee2e80d10abfd30 (patch) | |
| tree | 5c28b675ae7b596ecc6322029b6203afdac8c1d3 | |
| parent | d45a6d8363ef0d21aa43cae32edb8b3b90a0e20d (diff) | |
| download | mruby-6f395a58d2a1f2e5fdfaf2933ee2e80d10abfd30.tar.gz mruby-6f395a58d2a1f2e5fdfaf2933ee2e80d10abfd30.zip | |
Add `assert_same` and `assert_not_same`
| -rw-r--r-- | test/assert.rb | 26 | ||||
| -rw-r--r-- | test/t/proc.rb | 2 | ||||
| -rw-r--r-- | test/t/string.rb | 2 |
3 files changed, 28 insertions, 2 deletions
diff --git a/test/assert.rb b/test/assert.rb index 89d3a7969..196e71d39 100644 --- a/test/assert.rb +++ b/test/assert.rb @@ -124,6 +124,32 @@ def assert_not_equal(arg1, arg2 = nil, arg3 = nil) assert_false(exp == act, msg, diff) end +def assert_same(arg1, arg2 = nil, arg3 = nil) + if block_given? + exp, act, msg = arg1, yield, arg2 + else + exp, act, msg = arg1, arg2, arg3 + end + + 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__})" + assert_true(exp.equal?(act), msg, diff) +end + +def assert_not_same(arg1, arg2 = nil, arg3 = nil) + if block_given? + exp, act, msg = arg1, yield, arg2 + else + exp, act, msg = arg1, arg2, arg3 + end + + 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__})" + assert_false(exp.equal?(act), msg, diff) +end + def assert_nil(obj, msg = nil) msg = "Expected #{obj.inspect} to be nil" unless msg diff = assertion_diff(nil, obj) diff --git a/test/t/proc.rb b/test/t/proc.rb index 42ac3b941..b17b21e8c 100644 --- a/test/t/proc.rb +++ b/test/t/proc.rb @@ -157,7 +157,7 @@ assert('&obj call to_proc if defined') do def mock(&b) b end - assert_equal pr.object_id, mock(&pr).object_id + assert_same pr, mock(&pr) assert_equal pr, mock(&pr) obj = Object.new diff --git a/test/t/string.rb b/test/t/string.rb index 8f008c6a7..e0f0eb99c 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -579,7 +579,7 @@ assert('String#sub', '15.2.10.5.36') do str = "abc" miss = str.sub("X", "Z") assert_equal str, miss - assert_not_equal str.object_id, miss.object_id + assert_not_same str, miss a = [] assert_equal '.abc', "abc".sub("") { |i| a << i; "." } |
