Ruby:坚持一个公案

时间:2012-08-23 03:23:27

标签: ruby exception-handling

我正在使用RubyKoans.com并因此使用about_symbols.rb卡住了。

这是测试:我认为我应该在assert_raise()之后在括号中放一些东西,但我不知道:

def test_symbols_cannot_be_concatenated
    # Exceptions will be pondered further father down the path
    assert_raise(___) do
      :cats + :dogs
    end
  end

这是终端中的提示:

The answers you seek...
  [FillMeInError] exception expected, not  Class: <NoMethodError>  Message: <"undefined method `+' for :cats:Symbol">  ---Backtrace---  /Users/mm/Sites/koans/about_symbols.rb:89:in `block in test_symbols_cannot_be_concatenated'  ---------------

2 个答案:

答案 0 :(得分:4)

这就是答案。假设将错误放在括号中。

  def test_symbols_cannot_be_concatenated
    # Exceptions will be pondered further father down the path
    assert_raise(NoMethodError) do
      :cats + :dogs
    end
  end

答案 1 :(得分:4)

当你被困在公案上时,只需在irb中试一试。它可以帮助您了解要填写的内容。

$ irb
>> :symbol + :another_symbol
NoMethodError: undefined method `+' for :symbol:Symbol
from (irb):2