2010-12-16 11 views
12

मैंने ऐप्पल के दस्तावेज़ों में दिए गए चरणों के बाद तर्क परीक्षण करने के लिए आईओएस इकाई परीक्षण लक्ष्य बनाया है।क्या एक्सकोड के सेनटेस्टिंगकिट का उपयोग कर एक स्थिर लाइब्रेरी प्रोजेक्ट का परीक्षण करना संभव है?

अपने निर्माण में विफल रहता है हालांकि और मैं निम्नलिखित त्रुटि मिलती है: आमतौर पर

Undefined symbols:
"_OBJC_CLASS_$_MyClass", referenced from: objc-class-ref-to-MyClass in LogicTests.o ld: symbol(s) not found collect2: ld returned 1 exit status

, अगर मैं एक आवेदन के भीतर मेरी स्थिर पुस्तकालय का उपयोग करने के मैं library.a फ़ाइल होगी चाहते थे, और हेडर (सहित MyClass.h फ़ाइल ...)। क्या एक स्थिर लाइब्रेरी पर लॉजिक टेस्ट चलाने के लिए कुछ अतिरिक्त आवश्यक है, यदि मेरे टेस्ट केस MyClass.h का उपयोग कर रहे हैं तो उसी प्रोजेक्ट के भीतर?

Tjhanks

+0

अच्छा सवाल। बुरा जवाब श्रीमान सच्चाई यह है कि, एक स्थिर पुस्तकालय की प्रकृति के कारण, आप आवेदन परीक्षण नहीं कर सकते हैं। – Daniel

उत्तर

2

मैंने वास्तव में इसे हल किया। मुझे अपनी परियोजना में सभी .m फ़ाइलों को लॉजिकटेस्ट लक्ष्य के 'संकलन स्रोत' में कॉपी करना पड़ा। साथ ही लक्ष्यों को लक्ष्य के जोड़ों को 'पुस्तकालयों के साथ लिंक बाइनरी' अनुभाग के संदर्भ में जोड़ते हैं।

मुझे आशा है कि यह दूसरों

+2

वास्तव में, एक स्थिर पुस्तकालय के लिए, आप अपने परीक्षण लक्ष्य में अपने स्रोतों को शामिल करने से बेहतर नहीं हैं। यदि आप स्थिर पुस्तकालय के साथ _not_ काम नहीं कर रहे हैं तो आपने अपनी .m फ़ाइलों को जोड़ दिया है। –

+0

जॉन, यह भ्रमित है, क्या आप थोड़ा स्पष्ट हो सकते हैं? आप बेहतर क्यों होंगे? –

+0

यह दर्द है क्योंकि हर बार जब आप एक नई फाइल बनाते हैं, तो आपको इसे दो लक्ष्यों में जोड़ना याद रखना होगा। एक्सकोड आपको परीक्षण के तहत कोड से अपना टेस्ट कोड अलग रखने देता है, जो पूर्व को बाद में जोड़ता है। –

2

हाँ, Xcode 4.2 परीक्षण के साथ कोको टच स्टेटिक लाइब्रेरी के लिए एक टेम्पलेट है मदद करता है।

+1

यूप! अफसोस की बात है, यह केवल तर्क परीक्षण का समर्थन करता प्रतीत होता है। –

+0

कृपया मेरा उत्तर जांचें: http://stackoverflow.com/a/11267670/662605 – Daniel

12

, आप आवेदन परीक्षण प्रदर्शन नहीं कर सकते, द्वारा यह की आवाज़ है जो आप क्या करने की कोशिश कर रहे हैं। हालांकि, आप तर्क परीक्षण कर सकते हैं।

क्लाइंट एप्लिकेशन में यूनिट परीक्षण के बारे में आप अपने अवलोकन में सही थे।

एक्सकोड टेम्पलेट वैकल्पिक रूप से यूनिट परीक्षण शामिल करता है, लेकिन यदि आप उस इकाई परीक्षण के लिए बिल्ड सेटिंग्स पर जाते हैं तो आप देखेंगे कि यह एक परीक्षण होस्ट या बंडल लोडर निर्दिष्ट नहीं करता है। यह स्थैतिक पुस्तकालयों की प्रकृति के कारण है। वे अनुप्रयोग नहीं हैं, वे पुस्तकालय हैं - इसलिए आप तर्क परीक्षण कर सकते हैं, आप आवेदन परीक्षण नहीं कर सकते हैं।

आवेदन परीक्षण आप अपने स्थिर पुस्तकालय पर प्रदर्शन करने के लिए इच्छा हो सकती है इस परिदृश्य पर शामिल हो सकते हैं:

My library creates an SQLite database at runtime, I wish to perform a unit test to check everything is inserting and/or updating as expected.

आदेश इकाई परीक्षण के साथ इस परीक्षण करने के लिए, एक दूसरे के आवेदन जो शामिल है या नहीं तो बनाना होगा में है आपकी लाइब्रेरी के पर निर्भर करता है। इस एप्लिकेशन में तब आपकी लाइब्रेरी और एप्लिकेशन परीक्षण शामिल किए जा सकते हैं।

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

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