2011-01-30 20 views
17

खोजने की कोशिश की लेकिन बिना सफलता के। बस सोच रहा हूं कि मैं रेल 3 में स्कॉप्स का परीक्षण कैसे कर सकता हूं।स्कॉप्स का परीक्षण कैसे करें?

आरएसपीईसी, कंधे या सिर्फ एक परीक्षण इकाई का उपयोग कर सकता है।

धन्यवाद।

दरअसल, मैं इस तरह से कोशिश कर रहा हूं, लेकिन यह पूरी परीक्षा नहीं है क्योंकि इसे अभी भी ऑर्डर() विधि डालने की आवश्यकता है।

स्कोप:

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 

अंत

उत्तर

25

डेविड 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

4

मैं वहाँ एक और अधिक सुरुचिपूर्ण समाधान यकीन है, लेकिन मैं हमेशा से ही कुछ वस्तुओं है कि और मेरे दायरे में नहीं होना चाहिए चाहिए सेटअप किया था। दायरे को कॉल करने के बाद, मैं जांचता हूं कि लौटा हुआ ऑब्जेक्ट उस ऑब्जेक्ट में है जो उसे चाहिए, और उस ऑब्जेक्ट में नहीं है जो इसे नहीं करना चाहिए।

यदि कुछ भी है, तो मुझे अन्य उत्तरों से प्रबुद्ध होने की उम्मीद है।

+0

दो किनारे के मामलों की स्थापना और अपनी विधि का परीक्षण (जो कि वास्तव में क्या क्षेत्र है) एक सुरुचिपूर्ण परीक्षण समाधान है, इसलिए उपर्युक्त उत्तर का उपयोग करने की चिंता न करें – Houen

संबंधित मुद्दे