Merge pull request #4266 from shuujii/add-no_method_error-tests-to-enumerator

Add `NoMethodError` tests to `mruby-enumerator`
This commit is contained in:
Yukihiro "Matz" Matsumoto
2019-02-08 23:28:38 +09:00
committed by GitHub
2 changed files with 7 additions and 9 deletions
@@ -118,13 +118,8 @@ class Enumerator
def initialize(obj=NONE, meth=:each, *args, &block)
if block
obj = Generator.new(&block)
else
if obj == NONE
raise ArgumentError, "wrong number of arguments (given 0, expected 1+)"
end
if @obj && !self.respond_to?(meth)
raise NoMethodError, "undefined method #{meth}"
end
elsif obj == NONE
raise ArgumentError, "wrong number of arguments (given 0, expected 1+)"
end
@obj = obj
+5 -2
View File
@@ -6,11 +6,11 @@ class << @obj
end
end
assert 'Enumerator' do
assert 'Enumerator.class' do
assert_equal Class, Enumerator.class
end
assert 'Enumerator' do
assert 'Enumerator.superclass' do
assert_equal Object, Enumerator.superclass
end
@@ -418,7 +418,10 @@ assert 'nested iteration' do
end
assert 'Kernel#to_enum' do
e = nil
assert_equal Enumerator, [].to_enum.class
assert_nothing_raised { e = [].to_enum(:_not_implemented_) }
assert_raise(NoMethodError) { e.first }
end
assert 'modifying existing methods' do