यूनिट टेस्ट ऑब्जेक्टिव-सी कोड में क्या फ्रेमवर्क मौजूद हैं? मैं एक रूपरेखा चाहूंगा जो Apple Xcode के साथ अच्छी तरह से एकीकृत हो।
यूनिट टेस्ट ऑब्जेक्टिव-सी कोड में क्या फ्रेमवर्क मौजूद हैं? मैं एक रूपरेखा चाहूंगा जो Apple Xcode के साथ अच्छी तरह से एकीकृत हो।
जवाबों:
Xcode में XCTest शामिल है, जो OCUnit , एक Object-C Unit टेस्टिंग फ्रेमवर्क के समान है, और आपके प्रोजेक्ट की निर्माण प्रक्रिया के हिस्से के रूप में XCTest- आधारित यूनिट टेस्ट चलाने के लिए पूर्ण समर्थन है। Xcode के यूनिट टेस्टिंग सपोर्ट में Xcode ओवरव्यू: यूनिट टेस्ट का उपयोग करके वर्णन किया गया है ।
Xcode 2 दिनों में वापस, मैंने वेबलॉग पोस्ट की एक श्रृंखला लिखी कि Xcode यूनिट परीक्षण के साथ कुछ सामान्य कार्य कैसे करें:
XCTest के बजाय OCUnit का उपयोग करने के बावजूद, अवधारणाएं काफी हद तक समान हैं।
अंत में, मैंने कोको उपयोगकर्ता इंटरफेस के लिए परीक्षण लिखने के लिए कुछ पोस्ट भी लिखा; कोको को जिस तरह से संरचित किया जाता है वह इसे अपेक्षाकृत सरल बनाता है, क्योंकि आपको ज्यादातर मामलों में इवेंट लूप या ऐसा कुछ भी स्पिन करने की आवश्यकता नहीं है।
यह न केवल आपके मॉडल-स्तरीय कोड बल्कि आपके नियंत्रक-स्तर और यहां तक कि दृश्य-स्तरीय कोड के लिए परीक्षण-संचालित विकास करना संभव बनाता है।
की जाँच करें GHUnit गेब्रियल Handford द्वारा:
"GHUnit के लक्ष्य हैं:
XCode के भीतर इकाई परीक्षण चलाता है, जिससे आप XCode डीबगर का पूरी तरह से उपयोग कर सकते हैं। एक साधारण जीयूआई आपको अपने परीक्षणों की कल्पना करने में मदद करने के लिए। स्टैक के निशान दिखाएं। एक सरल (या नहीं) लक्ष्य सेटअप के साथ एक फ्रेमवर्क (कोको ऐप के लिए) के रूप में स्थापित किया जा सकता है; या आपके iPhone प्रोजेक्ट में पैकेज करना आसान है। "
मैंने iPhone के लिए Google टूलबॉक्स परीक्षण रिग का उपयोग करना शुरू कर दिया, और इसके लिए मेरे लिए बहुत अच्छा काम कर रहा था।
OCUnit की जाँच करें । Apple के डेवलपर नेटवर्क का शानदार परिचय है ।
ध्यान दें कि मैक (GTM) प्रोजेक्ट के लिए Google टूलबॉक्स केवल Apple के SenTestingKit फ्रेमवर्क को बढ़ाता / बढ़ाता है (जो कि, OCUnit पर आधारित है)। जैसा कि वे परियोजना स्थल पर कहते हैं:
जीटीएम ने मानक सेन्टिंगकिट के लिए कई एन्हांसमेंट दिए हैं जो आपको यूआई यूनिट परीक्षण, स्वचालित बाइंडिंग यूनिट परीक्षण, लॉग ट्रैकिंग और आईफोन पर यूनिट परीक्षण करने की अनुमति देता है, साथ ही आपके कोड के स्थिर और गतिशील परीक्षण करने के लिए उपकरण भी देता है।
उपयोगकर्ता-इंटरफ़ेस परीक्षण के बारे में निम्नलिखित टिप्पणी पर ध्यान दें:
उपयोगकर्ता इंटरफ़ेस इकाई परीक्षणों के लिए GTM का व्यापक समर्थन है। यह लगभग सभी मानक कोको / यूकीट यूआई ऑब्जेक्ट्स की इमेजिंग और / या आंतरिक स्थिति दोनों का परीक्षण करने का समर्थन करता है, और यह आपके यूआई ऑब्जेक्ट्स के लिए इस समर्थन का विस्तार करना आपके लिए आसान बनाता है।
इसका उपयोग करने के निर्देशों के लिए उनका " कोड सत्यापन और यूनिट परीक्षण " पृष्ठ देखें ।
मैं इस नतीजे पर पहुंचा कि GHUnit ऑब्जेक्टिव-सी के लिए सबसे उन्नत परीक्षण ढांचा है। मैंने अपने ब्लॉग पर टेस्टिंग फ्रेमवर्क का एक राउंडअप किया है । यह तैनाती (iPhone, सिम्युलेटर या मैक ओएस देशी) और मुखर क्षमताओं के मामले में सबसे अधिक लचीला है। क्योंकि यह GTM पर आधारित है, इसलिए यह SenTestingKit पर GTM के सभी लाभों को विरासत में मिला है, लेकिन इसके अलावा भी बहुत कुछ जोड़ता है। एक और बोनस यह है कि इसे बहुत सक्रिय रूप से बनाए रखा जा रहा है।
मैंने GHUnit में OCMock को एकीकृत करने का प्रयास किया है , यह बहुत अच्छा है! आप github पर कोड प्राप्त कर सकते हैं ।
मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन अगर आप xDnit-style test (Test :: Unit, JSUnit, JUnit, इत्यादि) पर BDD- शैली परीक्षण (rspec, जैस्मीन, आदि) पसंद करते हैं, तो आप Cedar की जाँच कर सकते हैं। । सीडर ऑब्जेक्टिव-सी के लिए बीडीडी-स्टाइल परीक्षण लाता है, अब यह भाषा बंद का समर्थन करती है।
हम अपनी iOS परियोजनाओं के लिए पाइस्टल लैब्स में देवदार का उपयोग खुशी से कर रहे हैं , और हम इसे बेहतर बनाने पर सक्रिय रूप से काम कर रहे हैं। किसी भी प्रतिक्रिया या सुझाव का cedar-discuss@googlegroups.com पर स्वागत है
मैं यह भी देखने के लिए कवरेज टूल्स का उपयोग करने की सिफारिश करूंगा कि कोड का कौन सा भाग यूनिट परीक्षणों के साथ कवर किया गया है और जो नहीं हैं। GCOV टूल के साथ बेसिक लाइन और ब्रांच कोड कवरेज जेनरेट किया जा सकता है । यदि आप अच्छी HTML कवरेज रिपोर्ट उत्पन्न करना चाहते हैं तो LCOV और ZCOV हैं जो बस करते हैं।
मैं जीएच-यूनिट की सिफारिश करता हूं, इसमें परीक्षा परिणामों के लिए एक अच्छा जीयूआई है।
यूनिट टेस्टिंग समर्थन xcode भीतर बंडल (अपने साधारण सेटअप के लिए) के साथ संयुक्त ocrunner (कुछ Autotest के लिए / गुर्राना अच्छाई) वर्तमान में मेरी पसंदीदा Obj सी इकाई परीक्षण सेटअप है।
यहाँ उनमें से एक बहुत कुछ है
सेन: ते (परीक्षण ढांचे के निर्माता Xcode के साथ शामिल) बताते हैं कि iPhone परियोजना के साथ OCUnit का उपयोग कैसे करें: सरल- iphone-ipad-unit-test ।
कोको विद लव के मैट गलाघेर का यूनिट टेस्टिंग पर बहुत अच्छा लेख है ।
मैं सुझाव दूंगा कि कीवी, iOS के लिए एक खुला स्रोत BDD परीक्षण ढाँचा: किवी
डैनियल स्टाइनबर्ग की पुस्तक "टेस्ट ड्राइविंग आईओएस डेवलपमेंट विथ कीवी" टेस्ट-ड्राइविंग-आईओएस-डेवलपमेंट शुरू करने या प्राप्त करने के लिए प्रोजेक्ट की विकी देखें।
मैं iPhone और iPad काम के साथ SimpleUnitTest काम करता है का उपयोग करें।
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
यह एक इकाई परीक्षण Xcode टेम्पलेट के साथ आसानी से एक इकाई परीक्षण वर्ग जोड़ने के लिए आता है। रैप्स जी.टी.एम.
आप सचमुच इसे एक सक्रिय परियोजना में छोड़ सकते हैं और 3 मिनट (या उससे कम) के भीतर इकाई परीक्षण जोड़ना शुरू कर सकते हैं।
स्पेक्टा एक आधुनिक TDD (टेस्ट ड्रिवेन डेवलपमेंट) / BDD (बिहेवियर ड्रिवेन डेवलपमेंट) फ्रेमवर्क है जो XCTest के शीर्ष पर चलता है। यह आईओएस और मैक ओएस एक्स परियोजनाओं के लिए इकाई परीक्षण का समर्थन करता है।