From f9a169fff2831c0350a157a589c1fa3dfe8840ea Mon Sep 17 00:00:00 2001 From: marcandre Date: Wed, 23 Oct 2013 15:14:17 +0000 Subject: * lib/ostruct.rb: raise NoMethodError with a #name and #args. Patch by Kenichi Kamiya. [Fixes GH-383] * test/ostruct/test_ostruct.rb: Added tests for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ostruct/test_ostruct.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/ostruct') diff --git a/test/ostruct/test_ostruct.rb b/test/ostruct/test_ostruct.rb index a28abe5211..70335f44af 100644 --- a/test/ostruct/test_ostruct.rb +++ b/test/ostruct/test_ostruct.rb @@ -125,4 +125,14 @@ class TC_OpenStruct < Test::Unit::TestCase assert_equal true, os1.eql?(os1.dup) assert_equal os1.hash, os1.dup.hash end + + def test_method_missing + os = OpenStruct.new + e = assert_raise(NoMethodError) { os.foo true } + assert_equal :foo, e.name + assert_equal [true], e.args + assert_match /#{__callee__}/, e.backtrace[0] + e = assert_raise(ArgumentError) { os.send :foo=, true, true } + assert_match /#{__callee__}/, e.backtrace[0] + end end -- cgit v1.2.3