我正在研究 Ruby Koans 中的 about_classes.rb 文件,并且通过“inside_a_method_self_refers_to_the_containing_object”测试遇到了障碍。这是代码:
class Dog7
attr_reader :name
def initialize(initial_name)
@name = initial_name
end
def get_self
self
end
def to_s
__
end
def inspect
"<Dog named '#{name}'>"
end
end
def test_inside_a_method_self_refers_to_the_containing_object
fido = Dog7.new("Fido")
fidos_self = fido.get_self
assert_equal <Dog named 'Fido'>, fidos_self
end
所以,我试图将assert_equal
评估的前半部分变为后半部分(fidos_self)。当我在 irb 中解决时,fidos_self 返回<Dog named 'Fido'>
,但我不断收到该答案的语法错误。
我看过类似的帖子:
Ruby Koans:此返回值中的引号在哪里?,但他的解决方案(fido
而不是<Dog named 'Fido'>
)导致我的 rake 中止,说堆栈级别太深。
这让我发疯了。我在这里想念什么?