[英]How to test scopes?
試圖找到但沒有成功。 只是想知道如何在Rails 3中測試范圍。
可以使用rspec,shoulda或只是一個測試單元。
謝謝。
實際上,我嘗試這種方式,但它不是完整的測試,因為它仍然需要放置order()方法。
范圍:
scope :recents_available, where(:available => true, :locked => false).order("created_at DESC")
describe Job, ":recents_available" do
it "should have the scope" do
Job.should respond_to(:recents_available)
end
it "should include recents jobs that are available and unlocked" do
@job = Factory(:job, :available => true, :locked => false )
Job.recents_available.should include(@job)
end
結束
David Chelimsky(Rspec的創建者)在Rspec Google Group中提供了以下示例:
describe User, ".admins" do
it "includes users with admin flag" do
admin = User.create! :admin => true
User.admin.should include(admin)
end
it "excludes users without admin flag" do
non_admin = User.create! :admin => false
User.admin.should_not include(non_admin)
end
end
class User < ActiveRecord::Base
named_scope :admins, :conditions => {:admin => true}
end
這顯然與你的例子不同,但它應該讓你知道如何做到這一點。 上下文的相關主題在這里: http : //groups.google.com/group/rspec/browse_thread/thread/6706c3f2cceef97f
我確信這是一個更優雅的解決方案,但我總是設置一些應該而且不應該在我的范圍內的對象。 在調用范圍之后,我檢查返回的對象是否應該,並且沒有它不應該的對象。
如果有的話,我希望得到其他答案的啟發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.