diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-28 01:39:30 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-28 01:39:30 +0000 |
commit | 74e5e61849e6062554adbc6887ce435826bcaef2 (patch) | |
tree | 27dda58a2202e70993059b3fbf66721b7c3e686a /test | |
parent | 60c8bfb3a18711397ac207e644ebbf5458b7b197 (diff) |
test_exception.rb: split test_name_error_info
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_exception.rb | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index f3aea58c73..7c0674857a 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -725,42 +725,60 @@ end.join assert_in_out_err([], "raise Class.new(RuntimeError), 'foo'", [], /foo\n/) end - def test_name_error_info - obj = BasicObject.new - class << obj + PrettyObject = + Class.new(BasicObject) do alias object_id __id__ def pretty_inspect; "`obj'"; end + alias inspect pretty_inspect end + + def test_name_error_info_const + obj = PrettyObject.new + e = assert_raise(NameError) { obj.instance_eval("Object") } assert_equal(:Object, e.name) + e = assert_raise(NameError) { BasicObject::X } assert_same(BasicObject, e.receiver) + assert_equal(:X, e.name) + end + + def test_name_error_info_method + obj = PrettyObject.new + e = assert_raise(NameError) { obj.instance_eval {foo} } assert_equal(:foo, e.name) assert_same(obj, e.receiver) + e = assert_raise(NoMethodError) { obj.foo(1, 2) } assert_equal(:foo, e.name) assert_equal([1, 2], e.args) assert_same(obj, e.receiver) + e = assert_raise(NoMethodError) { obj.instance_eval {foo(1, 2)} } assert_equal(:foo, e.name) assert_equal([1, 2], e.args) assert_same(obj, e.receiver) + end + + def test_name_error_info_local_variables + obj = PrettyObject.new def obj.test(a, b=nil, *c, &d) e = a 1.times {|f| g = foo; g} e end + e = assert_raise(NameError) { obj.test(3) } |