बहुत सारे चर हैं जो आपको स्थिति में उपयोग करने के लिए सर्वोत्तम इकाई परीक्षण रूपरेखा निर्धारित करेंगे। कुछ आइटम जो आपकी पसंद को प्रभावित कर सकते हैं, वे हैं:
- लक्ष्य भाषा।
- क्या पुस्तकालय समर्थन उपलब्ध है। उदाहरण के लिए libc या उसके नीचे का कट संस्करण।
- लक्ष्य का ऑपरेटिंग सिस्टम। जैसे कोई नहीं, FreeRTOS, कस्टम।
अधिकांश एक्सयूनिट प्रकार के ढांचे कुछ आधार स्तर की कार्यक्षमता प्रदान करेंगे जो उपयोगी हो सकते हैं। मैंने उपयोग किया है अतीत में कुछ सफलता के साथ Cunit का । (Ubuntuc / डेबियन पर libcunit1-dev पैकेज)। अधिकांश चौखटे को उपलब्ध होने के लिए libc की आवश्यकता होगी, कुछ को अतिरिक्त OS समर्थन की आवश्यकता होगी।
एक और परिवर्तनकारी जो सिर्फ 3 लाइनों लंबी है Minunit है ।
मैंने पाया है कि माइक्रोकंट्रोलर का उपयोग करने वाली इकाई परीक्षण लक्ष्य के रूप में काफी बोझिल है क्योंकि आपको परीक्षण डाउनलोड करने, उन्हें चलाने और फिर परिणाम प्राप्त करने के लिए उपयुक्त वातावरण प्रस्तुत करने में सक्षम होना चाहिए। बस प्लेटफ़ॉर्म प्राप्त करना जो आपको ऐसा करने में सक्षम करेगा, यह एक बड़ा काम है।
एक और दृष्टिकोण जो मैंने लिया है, जो मेरे लिए काम कर रहा है वह है होस्ट पर यूनिट परीक्षण करना, ड्राइवरों और एप्लिकेशन कोड के बीच एक अमूर्त परत को लागू करना। चूंकि आप लक्ष्य के लिए gcc का उपयोग कर रहे हैं, इसलिए कोड को होस्ट पर भी संकलित करना चाहिए।
कंपाइल होस्ट पर परीक्षण आम तौर पर इतना आसान होता है क्योंकि आपके पास होस्ट ओएस और उसके सभी उपकरणों का पूरा समर्थन होता है। उदाहरण के लिए, जब मेजबान पर परीक्षण किया जाता है, तो मेरे पास मेरे वायरलेस ड्राइवर का नकली संस्करण होता है, जो वास्तविक चालक के समान इंटरफ़ेस होता है जो लक्ष्य पर चलता है। होस्ट संस्करण वायरलेस पैकेट ट्रांसफर को अनुकरण करने के लिए यूडीपी पैकेट का उपयोग करता है, मॉक ड्राइवर पैकेट छोड़ने की क्षमता का समर्थन करता है ताकि मैं अपने प्रोटोकॉल का परीक्षण कर सकूं।
जिस उत्पाद पर मैं काम कर रहा था, उसमें एक थ्रेडेड ओएस का उपयोग किया जा रहा था, इसलिए होस्ट OS पर परीक्षण के लिए एब्सट्रैक्शन लेयर की जगह पियर्स का उपयोग किया गया।
सही नहीं है, लेकिन आपके लिए परीक्षण लिखना और चलाना जितना आसान है, उतना ही संभव है कि आप अधिक परीक्षण मामलों को लागू करें। विभिन्न प्लेटफार्मों पर कोड चलाने का एक और लाभ यह परीक्षण करना है कि कोड पोर्टेबल है। यदि लक्ष्य और होस्ट आर्किटेक्चर अलग-अलग हैं, तो आप जल्दी से एंडियन गलतियां करेंगे।
अब मैं विषय से थोड़ा हट गया हूं, लेकिन महसूस करता हूं कि ये विचार आपकी पसंद की रूपरेखा और परीक्षण विधियों में आपकी मदद कर सकते हैं।