में विफल रहता है मेरे पास एक अजीब स्थिति है जिससे मैं व्यक्तिगत आरएसपीसी मॉडल स्पेक फ़ाइल चलाता हूं तो सभी उदाहरण हरे हैं, अगर मैं अपने पूरे spec/मॉडल फ़ोल्डर का परीक्षण करता हूं तो मेरे सभी उदाहरण हरे रंग के होते हैं। अगर मैं नियंत्रकों का परीक्षण करता हूं तो वे सभी हरे रंग से गुजरते हैं। अगर मैं पूरे सूट (आरएसपीईसी स्पेक के माध्यम से) का परीक्षण करता हूं तो मुझे असफलता मिलती है - अगर मैं नियंत्रक परीक्षण को पूरी तरह से हटा देता हूं तो सबकुछ हरा होता है। अब मैं उम्मीद कर रहा हूं कि यह पूरी तरह से आत्मनिर्भर है लेकिन मैं इसे समझ नहीं सकता।पूरे रुपेक सूट का परीक्षण
मैंने इसे नियंत्रक परीक्षणों में विशिष्ट उदाहरणों तक सीमित कर दिया है - जिससे मॉडल चश्मा में उदाहरण विफल हो जाते हैं।
उदाहरण के लिए। एक notes_controller_spec.rb में इस लाइन यह/अपने मॉडल में एक विफलता का कारण बनता account_spec.rb
Failure/Error: @account.all_notes.should have(2).notes
ArgumentError:
comparison of Note with Note failed
./app/models/account.rb:293:in `sort'
जहां लाइन 293 है वर्तमान
Note.any_instance.stubs(:valid?).returns(false)
है अगर;
(self.notes + self.transactions.map(&:notes).flatten).sort {|a,b| a.created_at <=> b.created_at }
मुझे यकीन है कि यह उन हथेली के क्षणों में से एक होने जा रहा है, इसलिए मेरे साथ सौम्य रहें!
के बाद '' created_at' नोट्स में से एक के लिए nil', अपने तरह ब्लॉक एक 'Fixnum' के खिलाफ' nil' की तुलना की जाएगी जिसका अर्थ है हो सकता है, जो ब्लॉक को 'शून्य' वापस करने का कारण बनता है, जो आपके द्वारा देखे जा रहे 'ArgumentError' के प्रकार को उड़ा देगा।क्या आप सुनिश्चित हैं कि यह लाइन चलने पर डेटाबेस में आपके सभी उदाहरण सहेजे गए हैं? क्या यह संभव है कि प्रत्येक डेटाबेस से पहले आपका डेटाबेस खाली नहीं किया जा रहा है? –
मुझे एक ही समस्या है। मुझे लगता है कि यह [इस आरएसपीईसी मुद्दे] से संबंधित हो सकता है (https://github.com/rspec/rspec-mocks/issues/54), हालांकि यह तय किया गया है कि यह तय किया गया है। –
क्षमा करें, मैंने गलती से प्रवेश किया है, अधिक जानकारी: मैं मॉडल के किसी भी उदाहरण पर एक विधि को दबा रहा हूं - एक अलग मॉडल जिसे मैं परीक्षण के विशेष सेट में परीक्षण कर रहा हूं। जब मैं परीक्षण के एक अलग सेट को चलाता हूं जिसके लिए उस विधि की आवश्यकता होती है, तो यह नहीं मिलता है। एक फ़ाइल में परीक्षण में स्टब लेना दूसरी फ़ाइल पास करता है। वास्तव में गुस्से वाला। मैं rspec के विभिन्न संस्करणों को स्थापित करने के साथ प्रयोग कर रहा हूं। –