From 6f395a58d2a1f2e5fdfaf2933ee2e80d10abfd30 Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Sat, 5 Jan 2019 20:41:09 +0900 Subject: Add `assert_same` and `assert_not_same` --- test/assert.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test/assert.rb') 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) -- cgit v1.2.3