我正在测试我的控制器,我做了类似的事情:
bar = SuperDuper.calculate(resource)
expect(assigns(:foo)).to eq(bar)
我得到了这个结果
expected: #<ActiveRecord::Relation []>
got: #<ActiveRecord::Relation []>
(compared using ==)
为什么RSpec将此视为失败?
正如您所看到的,我使用忽略对象标识的eq
,而不是equal
来比较对象标识。
答案 0 :(得分:0)
我不确定,但您eq
表示==
。证明:https://www.relishapp.com/rspec/rspec-expectations/v/2-0/docs/matchers/equality-matchers
另请注意:
a.eql?(b) # object equivalence - a and b have the same value
来自这里:Rspec `eq` vs `eql` in `expect` tests
所以,我相信你应该试试eql
匹配器。