0
我定義了以下用戶類別與範圍:如何測試mongoid範圍?
class User
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Search
# SCOPES
scope :all_admins, where(role: :admin)
scope :recents, order_by(created_at: :desc)
scope :olders, order_by(created_at: :asc)
field :role, type: Symbol
end
如果我用下面的RSpec的測試:
describe 'scopes' do
let(:admin1) { Fabricate(:admin) }
let(:admin2) { Fabricate(:admin) }
describe 'recents' do
it 'should return the admins from most recent to older' do
User.all_admins.recents.should eq([admin1, admin2])
end
end
end
我得到以下失敗消息:
got: #<Mongoid::Criteria
selector: {"role"=>:admin},
options: {:sort=>{"created_at"=>-1}},
class: User,
embedded: false>
怎麼可能我測試這個範圍?
我不知道如果沒有有高架即使沒有必要,也可以將範圍作爲lambda表達式。你有沒有看到有關這個問題的任何事情? – ksol 2013-02-21 09:28:56
偉大的:to_a完成了這項工作。讓!也參與瞭解決方案的一部分,因爲這些對象不是用let創建的。 – obo 2013-02-26 08:10:07