Ruby Koans about_methods第123行对象循环

时间:2012-06-26 16:21:59

标签: ruby

每次我添加正确的代码时,由于AboutMethods,它给出了相同的错误:每次更改0x00000101841a28数字。这就像卡住了,我不知道如何摆脱这个循环。它工作了一次,然后我继续下一步,但之后它触发了一个错误。

我一定不能输入从控制台给出的正确代码行?

def test_calling_private_methods_with_an_explicit_receiver
exception = assert_raise(NoMethodError) do
  self.my_private_method
end
assert_match "private method `my_private_method' called for #<AboutMethods:0x000001008debf8>", exception.message

AboutMethods:0x000001008debf8每次更改,不知道如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

AboutMethods:0x...inspect方法的输出,通常(在本例中)包含类名(AboutMethods)和对象ID(0x...) 。对象id与内存中的对象位置相关,因此每次都会更改。

根据我的经验,从异常中检查字符串没有什么价值(它很脆弱)。但是,如果您觉得有必要,请使用正则表达式:

assert_match /private method `my_private_method' called for \#\<AboutMethods:.*/