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

nrf*_*law 15 ruby string quotes

我正在研究以下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
    "<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

def test_to_s_provides_a_string_version_of_the_object
  fido = Dog7.new("Fido")
  assert_equal __, fido.to_s
end
Run Code Online (Sandbox Code Playgroud)

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

<"<Dog named 'Fido'>"> expected but was  <<Dog named 'Fido'>>.
Run Code Online (Sandbox Code Playgroud)

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

救命?

nrf*_*law 26

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


Mar*_*her 1

更改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 "<Dog named 'Fido'>", fidos_self.inspect # .inspect added.
end
Run Code Online (Sandbox Code Playgroud)


好吧,还有更多的空白需要填补吗?我有一个答案,但看来你已经错误地填补了一个空白。