Split test_defined

This commit is contained in:
Nobuyoshi Nakada 2020-04-22 22:21:11 +09:00
parent 8119bcbfc0
commit de9d6a7a8c
No known key found for this signature in database
GPG Key ID: 7CD2805BFA3770C6

View File

@ -23,24 +23,30 @@ class TestDefined < Test::Unit::TestCase
return !defined?(yield) return !defined?(yield)
end end
def test_defined def test_defined_gloval_variable
$x = nil $x = nil
assert(defined?($x)) # global variable assert(defined?($x)) # global variable
assert_equal('global-variable', defined?($x))# returns description assert_equal('global-variable', defined?($x))# returns description
end
def test_defined_local_variable
assert_nil(defined?(foo)) # undefined assert_nil(defined?(foo)) # undefined
foo=5 foo=5
assert(defined?(foo)) # local variable assert(defined?(foo)) # local variable
end
def test_defined_constant
assert(defined?(Array)) # constant assert(defined?(Array)) # constant
assert(defined?(::Array)) # toplevel constant assert(defined?(::Array)) # toplevel constant
assert(defined?(File::Constants)) # nested constant assert(defined?(File::Constants)) # nested constant
end
def test_defined_method
assert(defined?(Object.new)) # method assert(defined?(Object.new)) # method
assert(defined?(Object::new)) # method assert(defined?(Object::new)) # method
assert(!defined?(Object.print)) # private method assert(!defined?(Object.print)) # private method
assert(defined?(1 == 2)) # operator expression assert(defined?(1 == 2)) # operator expression
f = Foo.new f = Foo.new
assert_nil(defined?(f.foo)) # protected method assert_nil(defined?(f.foo)) # protected method
f.bar(f) { |v| assert(v) } f.bar(f) { |v| assert(v) }
@ -53,10 +59,14 @@ class TestDefined < Test::Unit::TestCase
assert_nil(defined?(quux(x))) assert_nil(defined?(quux(x)))
assert(defined?(f.attr = 1)) assert(defined?(f.attr = 1))
f.attrasgn_test { |v| assert(v) } f.attrasgn_test { |v| assert(v) }
end
def test_defined_yield
assert(defined_test) # not iterator assert(defined_test) # not iterator
assert(!defined_test{}) # called as iterator assert(!defined_test{}) # called as iterator
end
def test_defined_matchdata
/a/ =~ '' /a/ =~ ''
assert_equal nil, defined?($&) assert_equal nil, defined?($&)
assert_equal nil, defined?($`) assert_equal nil, defined?($`)
@ -85,12 +95,16 @@ class TestDefined < Test::Unit::TestCase
assert_equal 'global-variable', defined?($+) assert_equal 'global-variable', defined?($+)
assert_equal 'global-variable', defined?($1) assert_equal 'global-variable', defined?($1)
assert_equal nil, defined?($2) assert_equal nil, defined?($2)
end
def test_defined_literal
assert_equal("nil", defined?(nil)) assert_equal("nil", defined?(nil))
assert_equal("true", defined?(true)) assert_equal("true", defined?(true))
assert_equal("false", defined?(false)) assert_equal("false", defined?(false))
assert_equal("expression", defined?(1)) assert_equal("expression", defined?(1))
end
def test_defined_empty_paren_expr
bug8224 = '[ruby-core:54024] [Bug #8224]' bug8224 = '[ruby-core:54024] [Bug #8224]'
(1..3).each do |level| (1..3).each do |level|
expr = "("*level+")"*level expr = "("*level+")"*level