我有一個控制器索引測試來獲取ActiveRecord作用域。 測試目前看起來是這樣的(包括一些在線調試東西):rSpec ==/eql無法比較'相同'的東西
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。 以前,一位同事會將這些物品包裝在to_a
中進行比較,我發現這有點髒,可能不是一個好的解決方案。
任何想法?我很好奇它爲什麼認爲它們不同,以及在老版本的Rails和/或rSpec中如何通過相同的測試。
你要驗證的類或對象人口?關係提供惰性加載,所以你沒有任何執行的查詢的步驟 – Anatoly
啊是的,我明白了,所以使用'.all'或'.to_a'會調用查詢嗎? – stuartc
是的,懶加載意味着火第一次請求查詢 – Anatoly