4

每次我添加正确的代码时,由于 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 每次都会更改,不知道如何解决这个问题?

4

1 回答 1

7

AboutMethods:0x...inspect方法的输出,通常(在这种情况下)包括类名 ( AboutMethods) 和对象 ID ( 0x...)。对象 id 与对象在内存中的位置有关,因此每次都会更改。

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

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

于 2012-06-26T16:26:01.253 回答