Ruby Koans:此返回值的引号在哪里?

我正在研究以下Ruby Koan:

class Dog7 attr_reader :name def initialize(initial_name) @name = initial_name end def get_self self end def to_s __ end def inspect "" end end def test_inside_a_method_self_refers_to_the_containing_object fido = Dog7.new("Fido") fidos_self = fido.get_self assert_equal "", fidos_self end def test_to_s_provides_a_string_version_of_the_object fido = Dog7.new("Fido") assert_equal __, fido.to_s end 

第一个assert_equal的前半部分是我想填写的。这段代码给出了错误:

 <""> expected but was <>. 

问题是,我坚持如何匹配返回值。 它看起来像一个字符串文字返回值,但我不知道如何在不使用引号和/或反斜杠的情况下表达它。 我没有尝试似乎工作。

救命?

在盯着它看了一会儿之后,我又想出了他们上课的地方。 将第一个断言更改为“assert_equal fido,fidos_self”使测试通过。 我被错误抛出,给出与inspect方法相同的输出,没有引号。 感谢您帮助我完成它。

test_inside_a_method_self_refers_to_the_containing_object更改为以下作品:

 def test_inside_a_method_self_refers_to_the_containing_object fido = Dog7.new("Fido") fidos_self = fido.get_self assert_equal "", fidos_self.inspect # .inspect added. end 


好的,还有更多的空白要填补吗? 我有一个答案,但似乎你已经错误填补了空白。

错误是类型对象错误; 第一个元素是字符串类型,第二个元素是Dog7类型。 解决方案是适当地匹配类型。

检查返回值:

 fidos_self.is_a?(String) fidos_self.is_a?(Dog7) fidos.is_a?(Dog7) fidos_self fidos