summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-01-06 20:59:22 +0900
committerGitHub <[email protected]>2019-01-06 20:59:22 +0900
commit89c79e56c5881831bd5c4206efa3a5e82eaf9427 (patch)
tree5c28b675ae7b596ecc6322029b6203afdac8c1d3
parentd45a6d8363ef0d21aa43cae32edb8b3b90a0e20d (diff)
parent6f395a58d2a1f2e5fdfaf2933ee2e80d10abfd30 (diff)
downloadmruby-89c79e56c5881831bd5c4206efa3a5e82eaf9427.tar.gz
mruby-89c79e56c5881831bd5c4206efa3a5e82eaf9427.zip
Merge pull request #4216 from shuujii/add-assert_same
Add `assert_same` and `assert_not_same`
-rw-r--r--test/assert.rb26
-rw-r--r--test/t/proc.rb2
-rw-r--r--test/t/string.rb2
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; "." }