2011-02-06 11 views
5

मैं कुछ गायब हो सकता है लोड, लेकिन मैं इस परिदृश्य में फंस कर रहा हूँ:रूबी: यूनिट टेस्टिंग गैर ActiveRecord मॉडल और अभी भी जुड़नार

मैं एक गैर ActiveRecord मॉडल है, जो मैं परीक्षण करना चाहते है। मैंने अपनी टेस्ट केस क्लास प्राप्त की है: टेस्ट :: यूनिट :: टेस्टकेस

हालांकि, मॉडल के लिए टेस्ट केस क्लास, स्वयं के भीतर उपयोग करता है, अन्य एक्टिव्रेकॉर्ड मॉडल क्लासेस और मैं उनके लिए फिक्स्चर लोड करना चाहता हूं। मेरे समस्या यह है कि जुड़नार वर्ग विधि उपलब्ध है केवल जब मैं ActiveSupport :: testcase (यह ActiveRecord :: TestFixtures जो ActiveSupport :: testcase में शामिल हो जाता है के भीतर परिभाषित किया गया है) से परीक्षण का मामला वर्ग उपवर्ग है।

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

धन्यवाद एक टन!

उत्तर

4

आप ActiveSupport::TestCase का उपयोग कक्षा के बिना ActiveRecord वर्ग (an example) के बिना कर सकते हैं - लेकिन यह प्रोजेक्ट फिक्स्चर का उपयोग नहीं करता है), इसलिए कुछ और इसका कारण बनना चाहिए। यह फ़िक्स्चर, या आपकी स्थिरता कॉन्फ़िगरेशन का उपयोग करने के तरीके के बारे में कुछ होना चाहिए। शायद, मौके से, क्या आपके पास इस गैर-एआर मॉडल के लिए एक स्थिरता फ़ाइल है जिसे आप परीक्षण करने का प्रयास कर रहे हैं?

+1

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

+0

आपने उन फिक्स्चर को कैसे घोषित किया जिन्हें आप गैर-एआर मॉडल की टेस्ट क्लास में लोड करना चाहते हैं? – barelyknown

+0

@ वैभव गुमाष्ट हाँ हाँ फिक्स्चर (: सभी) मुझे भी समस्याएं पैदा कर रहा था। साथ ही उन वर्गों में उन्हें स्पष्ट रूप से घोषित कर सकते हैं जिनकी मुझे आवश्यकता है। आप दोनों के लिए +1। – Ben

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