मैं एक ऐसे प्रोजेक्ट में हूं जहां हम कुछ बड़े कोड बेस को दोबारा शुरू कर रहे हैं। एक समस्या जो तुरंत उभरती है वह यह है कि प्रत्येक फ़ाइल कई अन्य फाइलों को आयात करती है। मैं अपने यूनिट परीक्षण में वास्तविक कोड को बदलने के बिना एक सुरुचिपूर्ण तरीके से कैसे नकल कर सकता हूं ताकि मैं यूनिट-टेस्ट लिखना शुरू कर सकूं?पायथन, यूनिट-परीक्षण और नकली आयात
उदाहरण के रूप में: जिन कार्यों को मैं परीक्षण करना चाहता हूं, उनके साथ फ़ाइल, दस अन्य फाइलों को आयात करती है जो हमारे सॉफ़्टवेयर का हिस्सा हैं और पायथन कोर libs नहीं।
मैं यूनिट परीक्षण को यथासंभव अलग से चलाने में सक्षम होना चाहता हूं और अभी के लिए मैं केवल उन कार्यों का परीक्षण करने जा रहा हूं जो आयात की जा रही फ़ाइलों से चीजों पर निर्भर नहीं हैं।
सभी उत्तरों के लिए धन्यवाद।
मुझे वास्तव में पता नहीं था कि मैं शुरुआत से क्या करना चाहता था लेकिन अब मुझे लगता है कि मुझे पता है।
समस्या यह थी कि कुछ आयात केवल तभी संभव था जब पूरा एप्लिकेशन कुछ तीसरे पक्ष के ऑटो-जादू के कारण चल रहा था। तो मुझे एक निर्देशिका में इन मॉड्यूल के लिए कुछ स्टब्स बनाना पड़ा, जिसमें मैंने sys.path
अब फाइल आयात कर सकते हैं जिसमें मैं अपने यूनिट-टेस्ट फ़ाइल में परीक्षण लिखना चाहता हूं, बिना किसी शिकायत के गायब मॉड्यूल।
आप mock_import विधि पर 'try: end:' को जोड़ना चाहते हैं, त्रुटि – Yonatan
@Yonatan के मामले में डिफॉल्ट एक के बजाय सिस्टम को लपेटने के आयात से बचने के लिए: आप सही हैं, धन्यवाद! मैंने अपना कोड संशोधित किया। – DzinX