mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Improve alias tests
This commit is contained in:
@@ -229,26 +229,3 @@ end
|
||||
assert('Class Dup 2') do
|
||||
module M; end; M.dup.class == Module
|
||||
end
|
||||
|
||||
assert('Class Alias 1') do
|
||||
class A
|
||||
def test; 1; end
|
||||
|
||||
alias test2 test
|
||||
alias :test3 :test
|
||||
end
|
||||
|
||||
A.new.test2 == 1 and A.new.test3 == 1
|
||||
end
|
||||
|
||||
assert('Class Alias 2') do
|
||||
class A
|
||||
def test; 1; end
|
||||
|
||||
alias test2 test
|
||||
|
||||
def test; 2; end
|
||||
end
|
||||
|
||||
A.new.test == 2 and A.new.test2 == 1
|
||||
end
|
||||
|
||||
+45
-1
@@ -1,5 +1,49 @@
|
||||
##
|
||||
# Chapter 13 "Class and modules" ISO Test
|
||||
# Chapter 13.3 "Methods" ISO Test
|
||||
|
||||
assert('The alias statement', '13.3.6 a) 4)') do
|
||||
# check aliasing in all possible ways
|
||||
|
||||
def alias_test_method_original; true; end
|
||||
|
||||
alias alias_test_method_a alias_test_method_original
|
||||
alias :alias_test_method_b :alias_test_method_original
|
||||
|
||||
assert_true(alias_test_method_original)
|
||||
assert_true(alias_test_method_a)
|
||||
assert_true(alias_test_method_b)
|
||||
end
|
||||
|
||||
assert('The alias statement (overwrite original)', '13.3.6 a) 4)') do
|
||||
# check that an aliased method can be overwritten
|
||||
# without side effect
|
||||
|
||||
def alias_test_method_original; true; end
|
||||
|
||||
alias alias_test_method_a alias_test_method_original
|
||||
alias :alias_test_method_b :alias_test_method_original
|
||||
|
||||
assert_true(alias_test_method_original)
|
||||
|
||||
def alias_test_method_original; false; end
|
||||
|
||||
assert_false(alias_test_method_original)
|
||||
assert_true(alias_test_method_a)
|
||||
assert_true(alias_test_method_b)
|
||||
end
|
||||
|
||||
assert('The alias statement', '13.3.6 a) 5)') do
|
||||
# check that alias is raising NameError if
|
||||
# non-existing method should be undefined
|
||||
|
||||
assert_raise(NameError) do
|
||||
alias new_name_a non_existing_method
|
||||
end
|
||||
|
||||
assert_raise(NameError) do
|
||||
alias :new_name_b :non_existing_method
|
||||
end
|
||||
end
|
||||
|
||||
assert('The undef statement', '13.3.7 a) 4)') do
|
||||
# check that undef is undefining method
|
||||
|
||||
Reference in New Issue
Block a user