2012-12-28 8 views
7

के कारण नया रिकॉर्ड नहीं बनाया जा सकता है मेरे पास अभी भी एक बहुत ही सरल रेल एप्लिकेशन है जिसे मैं बीएसडी का उपयोग कर ककड़ी और टीडीडी के साथ आरएसपीसी के साथ विकसित करना चाहता हूं । वर्तमान में, मैं एक परीक्षण में लटक रहा हूं जहां मैं यह जांचना चाहता हूं कि अगर किसी ऑर्गनाइज़र का एक नया उदाहरण (मेरे पास मॉडल है) सत्यापन सत्यापन के कारण नहीं बनाया जा सकता है। मैं यह जांचना चाहता हूं कि ऑब्जेक्ट की त्रुटियों को बनाने के लिए त्रुटियां खाली नहीं हैं ताकि मैं सुनिश्चित हो सकूं कि त्रुटि संदेश उन्हें देखने में उपलब्ध हैं।रेल आरएसपीसी: नियंत्रक परीक्षण, त्रुटियों की जांच करना अगर मॉडल का ऐरे सत्यापन से भरा हुआ है तो सत्यापन रिकॉर्ड

'spec_helper' की आवश्यकता होती है

वर्णन OrganizersController करते render_views

describe "POST 'create'" do 

    describe "with invalid arguments" do 
    before(:each) do 
     request.env["HTTP_REFERER"] = organizers_new_path 
     @organizer_args = { :name => "" } 
    end  

    it "should return a non-empty list of errors" do 
     post 'create', :organizer => @organizer_args 
     @organizer.errors.empty?.should_not be_true 
    end 
    end 
end  

अंत

मैं RSpec 2 और ककड़ी-पटरियों के साथ ऑन रेल्स 3.2.9 आधारित विकास कर रहा हूँ।

किसी भी सुझाव की सराहना की जाती है। धन्यवाद!

उत्तर

14

आप नियंत्रक कार्रवाई से उदाहरण चर प्राप्त करने के लिए प्रदान करती है विधि का उपयोग करना चाहिए:

assigns(:organizer).errors.empty?.should_not be_true 
11

नवीनतम पसंदीदा वाक्य रचना है: इस सवाल का जवाब लोगों के लिए

expect(assigns(:organizer).errors.empty?).to_not be_true 
+0

'सत्य '(कोई जगह नहीं) – Tobi

1

धन्यवाद लेकिन मैं एक सुझाव देना चाहते हैं थोड़ा अच्छे वाक्य रचना: expect(assigns(:organizer).errors).to_not be_empty

(प्रश्न से संबंधित नहीं)

असल में जब भी आपके पास ? के साथ समाप्त होने वाली कोई विधि है, तो आपके पास be_ के साथ शुरू होने वाला संबंधित आरएसपीसी मैचर होगा। 1.odd? #=> true expect(1).to be_odd