【发布时间】:2012-10-12 15:27:40
【问题描述】:
我正在研究 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: Where are the quotes in this return value?,但他的解决方案(使用 fido 而不是 <Dog named 'Fido'>)导致我的 rake 中止,说堆栈级别太深。
这让我发疯了。我在这里错过了什么?
【问题讨论】:
-
发布的 to_s 方法会出现语法错误。