mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Split test_nomethod_error.rb
This commit is contained in:
parent
a580a3757b
commit
0cf75e3850
Notes:
git
2019-12-31 19:43:59 +09:00
2 changed files with 89 additions and 86 deletions
|
@ -438,16 +438,6 @@ end.join
|
||||||
assert_not_send([e, :success?], "abort means failure")
|
assert_not_send([e, :success?], "abort means failure")
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_nomethoderror
|
|
||||||
bug3237 = '[ruby-core:29948]'
|
|
||||||
str = "\u2600"
|
|
||||||
id = :"\u2604"
|
|
||||||
msg = "undefined method `#{id}' for \"#{str}\":String"
|
|
||||||
assert_raise_with_message(NoMethodError, msg, bug3237) do
|
|
||||||
str.__send__(id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_errno
|
def test_errno
|
||||||
assert_equal(Encoding.find("locale"), Errno::EINVAL.new.message.encoding)
|
assert_equal(Encoding.find("locale"), Errno::EINVAL.new.message.encoding)
|
||||||
end
|
end
|
||||||
|
@ -828,82 +818,6 @@ end.join
|
||||||
assert_in_out_err([], "raise Class.new(RuntimeError), 'foo'", [], /foo\n/)
|
assert_in_out_err([], "raise Class.new(RuntimeError), 'foo'", [], /foo\n/)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_nomethod_error_new_default
|
|
||||||
error = NoMethodError.new
|
|
||||||
assert_equal("NoMethodError", error.message)
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_nomethod_error_new_message
|
|
||||||
error = NoMethodError.new("Message")
|
|
||||||
assert_equal("Message", error.message)
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_nomethod_error_new_name
|
|
||||||
error = NoMethodError.new("Message")
|
|
||||||
assert_nil(error.name)
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo)
|
|
||||||
assert_equal(:foo, error.name)
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_nomethod_error_new_name_args
|
|
||||||
error = NoMethodError.new("Message", :foo)
|
|
||||||
assert_nil(error.args)
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2])
|
|
||||||
assert_equal([:foo, [1, 2]], [error.name, error.args])
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_nomethod_error_new_name_args_priv
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2])
|
|
||||||
assert_not_predicate(error, :private_call?)
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2], true)
|
|
||||||
assert_equal([:foo, [1, 2], true],
|
|
||||||
[error.name, error.args, error.private_call?])
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_nomethod_error_new_receiver
|
|
||||||
receiver = Object.new
|
|
||||||
|
|
||||||
error = NoMethodError.new
|
|
||||||
assert_raise(ArgumentError) {error.receiver}
|
|
||||||
|
|
||||||
error = NoMethodError.new(receiver: receiver)
|
|
||||||
assert_equal(receiver, error.receiver)
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message")
|
|
||||||
assert_raise(ArgumentError) {error.receiver}
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", receiver: receiver)
|
|
||||||
assert_equal(["Message", receiver],
|
|
||||||
[error.message, error.receiver])
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo)
|
|
||||||
assert_raise(ArgumentError) {error.receiver}
|
|
||||||
|
|
||||||
msg = defined?(DidYouMean.formatter) ?
|
|
||||||
"Message\nDid you mean? for" : "Message"
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, receiver: receiver)
|
|
||||||
assert_equal([msg, :foo, receiver],
|
|
||||||
[error.message, error.name, error.receiver])
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2])
|
|
||||||
assert_raise(ArgumentError) {error.receiver}
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2], receiver: receiver)
|
|
||||||
assert_equal([msg, :foo, [1, 2], receiver],
|
|
||||||
[error.message, error.name, error.args, error.receiver])
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2], true)
|
|
||||||
assert_raise(ArgumentError) {error.receiver}
|
|
||||||
|
|
||||||
error = NoMethodError.new("Message", :foo, [1, 2], true, receiver: receiver)
|
|
||||||
assert_equal([:foo, [1, 2], true, receiver],
|
|
||||||
[error.name, error.args, error.private_call?, error.receiver])
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_output_string_encoding
|
def test_output_string_encoding
|
||||||
# "\x82\xa0" in cp932 is "\u3042" (Japanese hiragana 'a')
|
# "\x82\xa0" in cp932 is "\u3042" (Japanese hiragana 'a')
|
||||||
# change $stderr to force calling rb_io_write() instead of fwrite()
|
# change $stderr to force calling rb_io_write() instead of fwrite()
|
||||||
|
|
89
test/ruby/test_nomethod_error.rb
Normal file
89
test/ruby/test_nomethod_error.rb
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
require 'test/unit'
|
||||||
|
|
||||||
|
class TestNoMethodError < Test::Unit::TestCase
|
||||||
|
def test_new_default
|
||||||
|
error = NoMethodError.new
|
||||||
|
assert_equal("NoMethodError", error.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_message
|
||||||
|
error = NoMethodError.new("Message")
|
||||||
|
assert_equal("Message", error.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_name
|
||||||
|
error = NoMethodError.new("Message")
|
||||||
|
assert_nil(error.name)
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo)
|
||||||
|
assert_equal(:foo, error.name)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_name_args
|
||||||
|
error = NoMethodError.new("Message", :foo)
|
||||||
|
assert_nil(error.args)
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2])
|
||||||
|
assert_equal([:foo, [1, 2]], [error.name, error.args])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_name_args_priv
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2])
|
||||||
|
assert_not_predicate(error, :private_call?)
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2], true)
|
||||||
|
assert_equal([:foo, [1, 2], true],
|
||||||
|
[error.name, error.args, error.private_call?])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_receiver
|
||||||
|
receiver = Object.new
|
||||||
|
|
||||||
|
error = NoMethodError.new
|
||||||
|
assert_raise(ArgumentError) {error.receiver}
|
||||||
|
|
||||||
|
error = NoMethodError.new(receiver: receiver)
|
||||||
|
assert_equal(receiver, error.receiver)
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message")
|
||||||
|
assert_raise(ArgumentError) {error.receiver}
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", receiver: receiver)
|
||||||
|
assert_equal(["Message", receiver],
|
||||||
|
[error.message, error.receiver])
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo)
|
||||||
|
assert_raise(ArgumentError) {error.receiver}
|
||||||
|
|
||||||
|
msg = defined?(DidYouMean.formatter) ?
|
||||||
|
"Message\nDid you mean? for" : "Message"
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, receiver: receiver)
|
||||||
|
assert_equal([msg, :foo, receiver],
|
||||||
|
[error.message, error.name, error.receiver])
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2])
|
||||||
|
assert_raise(ArgumentError) {error.receiver}
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2], receiver: receiver)
|
||||||
|
assert_equal([msg, :foo, [1, 2], receiver],
|
||||||
|
[error.message, error.name, error.args, error.receiver])
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2], true)
|
||||||
|
assert_raise(ArgumentError) {error.receiver}
|
||||||
|
|
||||||
|
error = NoMethodError.new("Message", :foo, [1, 2], true, receiver: receiver)
|
||||||
|
assert_equal([:foo, [1, 2], true, receiver],
|
||||||
|
[error.name, error.args, error.private_call?, error.receiver])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_message_encoding
|
||||||
|
bug3237 = '[ruby-core:29948]'
|
||||||
|
str = "\u2600"
|
||||||
|
id = :"\u2604"
|
||||||
|
msg = "undefined method `#{id}' for \"#{str}\":String"
|
||||||
|
assert_raise_with_message(NoMethodError, msg, bug3237) do
|
||||||
|
str.__send__(id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue