为什么Crystal应该产生虚假错误

pit*_*las 1 crystal-lang

我正在学习它,将Ruby程序转换为Crystal.

这是我收到的错误消息:

# Error
Failures:
  1) Test Rule class can return the name property
     Failure/Error: rule.name.should be "RpsIphone"

       Expected: "RpsIphone" (object_id: 4504126256)
            got: "RpsIphone" (object_id: 4524981536)

     # spec/rule_spec.cr:11
Run Code Online (Sandbox Code Playgroud)

这是导致它的代码

# from spec
rule.name.should be "RpsIphone"
Run Code Online (Sandbox Code Playgroud)

我还检查了两个字符串与.same相比?也说他们不一样.我一遍又一遍地看着那9个字.我错过了什么?

pit*_*las 5

  • Crystal .should be对对象的测试是相同的,相同的,相同的object_id
  • Crystal .should eq对值的测试是相同的