Ruby Koans 113 282

在做RubyKoans 113282 的时候,遇到一个奇怪的问题,就是检查返回的异常信息是否与目标信息匹配。

第一次填的信息如下:

assert_match(/"wrong number of arguments (0 for 2)"/, exception.message)

得到的结果如下:

Expected "wrong number of arguments (0 for 2)" to match / "wrong number of arguments (0 for 2)" /

后来发现可能有符号需要转译,就陆续转移了引号和括号等,但是发现转译对我这个新手来说是个坑,想到可以使用括号,如下:

  # NOTE: wrong number of arguments is not a SYNTAX error, but a
  # runtime error.
  def test_calling_global_methods_with_wrong_number_of_arguments
    exception = assert_raise(ArgumentError) do
      my_global_method
    end
    assert_match(/["wrong number of arguments (given 0, expected 2)]/ , exception.message)

    exception = assert_raise(ArgumentError) do
      my_global_method(1,2,3)
    end
    assert_match(/["wrong number of arguments (given 3, expected 2)"]/, exception.message)
  end

这样就可以顺利通过了。