那么为什么会这样呢?它必须是名称空间错误,我只是不知道它在哪里。我在文件中向Fixnum添加了一个方法file.rb
module M
class Fixnum
def foo
return true
end
end
end
然后我将进行如下测试:
require 'minitest/autorun'
require './file.rb' #the path is correct
class SomeTest < MiniTest::Test
def test_foo
assert 3.foo
end
end
反过来会抛出一个
NoMethodError: undefined method `foo' for 3:Fixnum
当我运行测试时,我会挠头-即使我include M
为测试包括模块(应用名称空间?),它仍然会引发错误。我可以很好地使用自定义类,只有当我尝试向现有的“开放类”中添加方法时,才可以使用自定义类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句