2011-11-25 20 views
5

का पता लगाने के लिए #IF निर्देश का उपयोग करें मेरे पास मेरे कोड में यह विशिष्ट कॉल है और मैंने पाया कि जब मैं एकीकरण इकाई परीक्षण का उपयोग कर परीक्षण कर रहा हूं, तो पूर्ण ऐप चलाने के दौरान कॉन्फ़िगर को अलग होने की आवश्यकता है।इकाई परीक्षण

#if निर्देश का उपयोग कर यूनिट परीक्षण से कॉल की जांच करने का कोई तरीका है?

#if TestMethod 
...do this config 
#else 
...do this config 
#endif 

शायद यूनिट परीक्षण फ़ंक्शन पर एक विशेषता का पता लगाने के लिए किसी भी तरह से?

उत्तर

11

नहीं, क्योंकि या तो निर्मित बाइनरी में कोड मौजूद है या नहीं। संकल्प समय पर पूरी तरह से बनाया गया है, इसलिए "अनुपलब्ध" कोड को पुन: पेश करने के लिए निष्पादन समय पर आप कुछ भी नहीं कर सकते हैं। आपको गतिशील रूप से दो अलग-अलग बाइनरी लोड करना होगा, और इस तरह से परीक्षण चलाएं।

क्या आप सशर्त संकलन का उपयोग करने के लिए, निर्णय लेने के लिए कौन सा मार्ग लेना है, यह तय करने के बजाय?

+0

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

0

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

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