两个物体如何看似相同却不相同?
有pickle_step运行代码“model!(owner).send(association).should == model!(target)”
在标签(黄瓜--tags @thisonescenario)中运行时,所有者和目标是相同的,测试通过。
当与其他场景(黄瓜)一起运行时,所有者和目标不一样。
经过检查(rdebug)后,代码说这些类虽然看起来确实不一样,但并不相同。黄瓜步骤的输出如下:
expected: #<Content _id: content_1, _type: nil>
got: #<Content _id: content_1, _type: nil> (using ==)
Diff: (RSpec::Expectations::ExpectationNotMetError)
注意:==由Mongo库重载,代码如下:
def ==(other)
self.class == other.class &&
attributes["_id"] == other.attributes["_id"]
end
_id比较是真的。 self.class == other.class为false。
检查类属性(如后代,祖先等)表明它们是相同的。
有什么想法吗?
答案 0 :(得分:0)
如果使用===而不是==来比较类名?
类似
other === self && ...