我有一个控制器索引测试,它获得了一个 ActiveRecord 范围。测试目前看起来像这样(包括一些内联调试的东西):
describe "GET index" do
it "assigns all schools as @schools" do
get :index
puts assigns(:schools).class
puts School.populated.class
assigns(:schools).should == School.populated
end
end
输出是这样的:
ActiveRecord::Relation
ActiveRecord::Relation
expected: []
got: [] (using ==)
Diff:
这绝对不是我在最近版本的 Rails 和 rSpec 中第一次遇到这种情况。以前,同事只会将物品包装在 ato_a
中进行比较,我觉得这有点脏,可能不是一个好的解决方案。
有任何想法吗?我很好奇为什么它认为它们不同,以及相同的测试如何在旧版本的 Rails 和/或 rSpec 中通过。