2011-07-13 7 views
11

क्या कोई विधि या मॉड्यूल है जो मुझे पर्ल यूनिट परीक्षण के उपयोग के लिए नकली फाइल सिस्टम को अनुकरण करने की अनुमति देता है?पर्ल यूनिट परीक्षण के लिए नकली फाइल सिस्टम

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

मुझे पता है कि इस समस्या को हल करने के सभी तरीके हैं, जैसे अस्थायी फाइलें बनाना या अपने कार्यों में फ़ाइल परीक्षण लपेटना, जिसे मजाक किया जा सकता है, लेकिन कभी-कभी यह अच्छा होगा अगर मैं सिर्फ पर्ल प्राप्त कर सकूं मुझसे झूठ करने के लिए ... तो समाधान है कि कोड को फिर से लिखने की सलाह देते हैं परीक्षण किया जा रहा की आवश्यकता नहीं है ;-)

अद्यतन:

बस मिल गया और this SO question पढ़ रही है, ताकि यह अधिक है कोड को फिर से लिखने के बाद टेस्टेबल अधिक समझदार विकल्प की तरह दिख रहा है। फिर भी, उंगलियों को पार किया ...

उत्तर

6

ये एक लायक हैं: Filesys::Virtual और Filesys::Virtual::Async। मैंने पहले इस्तेमाल किया है। Path::Class और File::Temp के साथ मिश्रित यह सभी प्रकार की स्वयं-सफाई चीजों को आसानी से और सुंदर ढंग से करना आसान है। Test::Virtual::Filesystem भी दिलचस्प लग रहा है।

+1

लिंक के लिए धन्यवाद। मैं अनिश्चित होने के लिए कबूल करता हूं कि मैं Filesys :: वर्चुअल के साथ क्या करूंगा - यह किसी और चीज़ के लिए आधार वर्ग प्रतीत होता है। कृपया आप थोड़ी देर में इसका विस्तार कैसे कर सकते हैं इस पर थोड़ा विस्तार कर सकते हैं? – Mike

+0

@ माइक, क्षमा करें, मुझे वास्तव में यह लिंक करना चाहिए था: [Filesys :: वर्चुअल :: सादा] (http://search.cpan.org/perldoc?Filesys::Virtual::Plain)। यह बॉक्स के बाहर उपयोग करने के लिए तैयार होने के करीब है। – Ashley

+0

धन्यवाद - मैंने इसे भी ढूंढ लिया, और यह एक अच्छी संभावना की तरह दिखता है। मुझे अभी तक इसे जांचने का मौका नहीं मिला है, लेकिन जल्द ही ऐसा करने की उम्मीद है। – Mike