c यूनिट परीक्षण सी कोड




unit-testing testing (24)

उपयोग करने के लिए एक तकनीक सी ++ xUnit फ्रेमवर्क (और सी ++ कंपाइलर) के साथ यूनिट टेस्ट कोड विकसित करना है, जबकि सी मॉड्यूल के रूप में लक्ष्य प्रणाली के स्रोत को बनाए रखना है।

सुनिश्चित करें कि यदि आप संभव हो तो अपने यूनिट परीक्षणों के साथ स्वचालित रूप से अपने क्रॉस-कंपाइलर के तहत अपने सी स्रोत को संकलित करें।

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

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


माइकल फेदर की पुस्तक "लीगेसी कोड के साथ प्रभावी ढंग से कार्य करना" सी विकास के दौरान इकाई परीक्षण के लिए विशिष्ट तकनीकों को प्रस्तुत करती है।

निर्भरता इंजेक्शन से संबंधित तकनीकें हैं जो सी के लिए विशिष्ट हैं जिन्हें मैंने कहीं और नहीं देखा है।


मेरे स्पष्ट पूर्वाग्रह के अलावा

http://code.google.com/p/seatest/

इकाई परीक्षण सी कोड के लिए एक अच्छा आसान तरीका है। नकल xUnit


व्यक्तिगत रूप से मुझे Google टेस्ट फ्रेमवर्क पसंद है

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

जब लोग " सीम " के बारे में बात करते हैं तो लोग यही जिक्र कर रहे हैं। सी में आपका एकमात्र विकल्प वास्तव में प्री-प्रोसेसर या लिंकर का उपयोग अपनी निर्भरताओं को नकल करने के लिए करना है।

मेरी सी परियोजनाओं में से एक में एक सामान्य परीक्षण सूट इस तरह दिख सकता है:

#include "myimplementationfile.c"
#include <gtest/gtest.h>

// Mock out external dependency on mylogger.o
void Logger_log(...){}

TEST(FactorialTest, Zero) {
    EXPECT_EQ(1, Factorial(0));
}

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

कोड को पार करने के लिए, इस काम के लिए आपको लक्ष्य पर अच्छी सुविधाएं चाहिए। मैंने इसे PowerPC आर्किटेक्चर पर लिनक्स में संकलित googletest क्रॉस के साथ किया है। यह समझ में आता है क्योंकि आपके परिणामों को इकट्ठा करने के लिए आपके पास एक पूर्ण खोल और ओएस है। कम समृद्ध वातावरण के लिए (जिसे मैं पूर्ण ओएस के बिना कुछ भी वर्गीकृत करता हूं) आपको बस मेजबान बनाना और चलाने चाहिए। आपको वैसे भी ऐसा करना चाहिए ताकि आप निर्माण के हिस्से के रूप में स्वचालित रूप से परीक्षण चला सकें।

मुझे लगता है कि परीक्षण सी ++ कोड आमतौर पर इस तथ्य के कारण बहुत आसान होता है कि ओओ कोड सामान्य रूप से प्रक्रियात्मक से कम युग्मित होता है (बेशक यह कोडिंग शैली पर बहुत निर्भर करता है)। सी ++ में आप निर्भरता इंजेक्शन और विधि को ओवरराइड करने के तरीके को ओवरराइड करने वाले कोड में सीम प्राप्त करने के लिए ओवरराइडिंग का उपयोग कर सकते हैं।

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

संपादित करें : मैंने गिटहब पर उपलब्ध स्रोत के साथ इकाई परीक्षण प्रक्रियात्मक कोड के बारे में एक ब्लॉग पोस्ट लिखा है

संपादित करें : व्यावहारिक प्रोग्रामर से एक नई पुस्तक आ रही है जो विशेष रूप से यूनिट परीक्षण सी कोड को संबोधित करती है जिसे मैं अत्यधिक अनुशंसा करता हूं


मैंने लक्ष्य पर परीक्षण से पहले पीसी पर एम्बेडेड कोड के लिए कुछ यूनिट परीक्षण करने के लिए RCUNIT का इस्तेमाल किया। अच्छा हार्डवेयर इंटरफ़ेस अबास्ट्रक्शन महत्वपूर्ण है और अंतहीनता और मेमोरी मैप किए गए रजिस्ट्रार आपको मारने जा रहे हैं।


यदि आप जुनीट से परिचित हैं तो मैं CppUnit की अनुशंसा करता हूं। http://cppunit.sourceforge.net/cppunit-wiki

ऐसा माना जाता है कि यूनिट परीक्षण करने के लिए आपके पास c ++ कंपाइलर है। यदि नहीं तो मुझे एडम रोसेनफील्ड से सहमत होना है कि आप जो चाहते हैं वह जांच करें।


सबसे पहले, यहां देखें: http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C

मेरी कंपनी के पास सी ग्राहक हैं जो हमारे ग्राहक उपयोग करते हैं। हम कोड का परीक्षण करने के लिए CxxTest (एक सी ++ इकाई परीक्षण पुस्तकालय) का उपयोग करते हैं। CppUnit भी काम करेगा। यदि आप सी में फंस गए हैं, तो मैं आरसीयूएनआईटीआईटी की सिफारिश करता हूं (लेकिन क्यूनीट भी अच्छा है)।


Google में उत्कृष्ट परीक्षण ढांचा है। http://code.google.com/p/googletest/wiki/GoogleTestPrimer

और हाँ, जहां तक ​​मुझे लगता है कि यह सादा सी के साथ काम करेगा, यानी सी ++ सुविधाओं की आवश्यकता नहीं है (सी ++ कंपाइलर की आवश्यकता हो सकती है, सुनिश्चित नहीं है)।


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

एक उदाहरण:

#include <tap.h>

int main () {
    plan(5);

    ok(3 == 3);
    is("fnord", "eek", "two different strings not that way?");
    ok(3 <= 8732, "%d <= %d", 3, 8732);
    like("fnord", "f(yes|no)r*[a-f]$");
    cmp_ok(3, ">=", 10);

    done_testing();
}

यदि आप Win32 प्लेटफॉर्म या एनटी कर्नेल मोड को लक्षित कर रहे हैं, तो आपको cfix पर एक नज़र रखना चाहिए।


एपीआई स्वच्छता परीक्षक - सी / सी ++ पुस्तकालयों के लिए परीक्षण ढांचा:

साझा सी / सी ++ लाइब्रेरी के लिए मूल इकाई परीक्षणों का एक स्वचालित जनरेटर। यह पैरामीटर के लिए इनपुट डेटा (ज्यादातर, लेकिन दुर्भाग्य से सभी मामलों में) उत्पन्न करने में सक्षम है और शीर्षलेख में घोषणाओं के विश्लेषण के माध्यम से एपीआई में प्रत्येक समारोह के लिए सरल ("सैनिटी" या "उथला" - गुणवत्ता) परीक्षण मामलों को लिखता है फ़ाइलें।

जेनरेट किए गए परीक्षणों की गुणवत्ता सरल उपयोग मामलों में महत्वपूर्ण त्रुटियों की अनुपस्थिति की जांच करने की अनुमति देती है। उपकरण जेनरेट किए गए परीक्षणों को बनाने और निष्पादित करने में सक्षम है और क्रैश (segfaults), aborts, उत्सर्जित सिग्नल के सभी प्रकार, गैर-शून्य प्रोग्राम रिटर्न कोड और प्रोग्राम फांसी का पता लगाने में सक्षम है।

उदाहरण:


CUnit है

और एंबेडेड यूनिट एम्बेडेड सी सिस्टम के लिए इकाई परीक्षण ढांचा है। इसकी डिजाइन जुनीट और कुनीट और अधिक से कॉपी की गई थी, और उसके बाद एम्बेडेड सी सिस्टम के लिए कुछ हद तक अनुकूलित किया गया था। एम्बेडेड यूनिट को std c libs की आवश्यकता नहीं है। सभी वस्तुओं को स्थिर क्षेत्र में आवंटित किया जाता है।

और Tessy एम्बेडेड सॉफ़्टवेयर के यूनिट परीक्षण को स्वचालित करता है।


सी में एक यूनिट परीक्षण ढांचा Check ; सी में इकाई परीक्षण ढांचे की एक सूची here पाई जा सकती here और नीचे पुन: उत्पन्न की जाती है। आपके रनटाइम के कितने मानक लाइब्रेरी कार्य करते हैं, इस पर निर्भर करते हुए, आप इनमें से किसी एक का उपयोग करने में सक्षम हो सकते हैं या नहीं।

AceUnit

ऐसनीट (एडवांस्ड सी और एंबेडेड यूनिट) खुद को आरामदायक सी कोड यूनिट टेस्ट फ्रेमवर्क के रूप में बिल करता है। यह जुनीट 4.x की नकल करने की कोशिश करता है और प्रतिबिंब जैसी क्षमताओं को शामिल करता है। AceUnit संसाधन बाधा वातावरण में उपयोग किया जा सकता है, उदाहरण के लिए एम्बेडेड सॉफ़्टवेयर विकास, और महत्वपूर्ण रूप से यह उन वातावरणों में ठीक चलता है जहां आप एक मानक शीर्षलेख फ़ाइल शामिल नहीं कर सकते हैं और एएनएसआई / आईएसओ सी पुस्तकालयों से एक मानक सी फ़ंक्शन का आह्वान नहीं कर सकते हैं। इसमें एक विंडोज पोर्ट भी है। यह जाल संकेतों के लिए कांटे का उपयोग नहीं करता है, हालांकि लेखकों ने ऐसी सुविधा जोड़ने में रुचि व्यक्त की है। AceUnit मुखपृष्ठ देखें।

जीएनयू Autounit

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

Cunit

जीएलआईबी का भी उपयोग करता है, लेकिन इकाई परीक्षणों के पता स्थान की रक्षा करने के लिए कांटा नहीं है।

Cunit

Win32 GUI कार्यान्वयन के लिए योजनाओं के साथ मानक सी। वर्तमान में फोर्क या अन्यथा यूनिट परीक्षणों की पता स्थान की रक्षा नहीं करता है। शुरुआती विकास में CUnit मुखपृष्ठ देखें।

सबसे प्यारे

केवल एक .c और एक .h फ़ाइल के साथ एक साधारण ढांचा जो आप अपने स्रोत पेड़ में छोड़ते हैं। CuTest मुखपृष्ठ देखें।

CppUnit

सी ++ के लिए प्रमुख इकाई परीक्षण ढांचा; आप सी कोड का परीक्षण करने के लिए इसका भी उपयोग कर सकते हैं। यह स्थिर, सक्रिय रूप से विकसित है, और इसमें एक जीयूआई इंटरफ़ेस है। सी के लिए सीपीपीयूनीट का उपयोग न करने के प्राथमिक कारण पहले हैं कि यह काफी बड़ा है, और दूसरा आपको सी ++ में अपने परीक्षण लिखना है, जिसका अर्थ है कि आपको सी ++ कंपाइलर की आवश्यकता है। यदि ये चिंताओं की तरह नहीं लगते हैं, तो यह अन्य सी ++ इकाई परीक्षण ढांचे के साथ-साथ विचार करने लायक है। CppUnit मुखपृष्ठ देखें।

embUnit

एम्बनीट (एंबेडेड यूनिट) एम्बेडेड सिस्टम के लिए एक और इकाई परीक्षण ढांचा है। ऐसा लगता है कि यह एसेनिट द्वारा अधिग्रहित किया गया है। एम्बेडेड यूनिट होमपेज

MinUnit

मैक्रोज़ का एक न्यूनतम सेट और वह यह है! बिंदु यह दिखाने के लिए है कि इकाई को आपके कोड का परीक्षण करना कितना आसान है। MinUnit मुखपृष्ठ देखें।

श्री एंडो के लिए CUnit

एक CUnit कार्यान्वयन जो काफी नया है, और स्पष्ट रूप से अभी भी शुरुआती विकास में है। श्री एंडो होमपेज के लिए CUnit देखें।

यह सूची मार्च 2008 में अंतिम बार अपडेट की गई थी।

अन्य:

CMocka

सीएमॉकए नकली वस्तुओं के समर्थन के साथ सी के लिए एक परीक्षण ढांचा है। इसका उपयोग करना और सेटअप करना आसान है। cmocka.org आधिकारिक होमपेज।

मापदंड

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

HWUT

एचडब्लूटी सी के लिए बहुत अच्छा समर्थन वाला एक सामान्य यूनिट टेस्ट टूल है। यह मेकफ़ाइल बनाने में मदद कर सकता है, कम से कम 'पुनरावृत्ति तालिकाओं' में कोडित बड़े पैमाने पर परीक्षण केस उत्पन्न कर सकता है, राज्य मशीनों के साथ चल सकता है, सी-स्टब्स उत्पन्न कर सकता है। सामान्य दृष्टिकोण बहुत अनोखा है: वर्डिक्ट्स 'अच्छा स्टडआउट / खराब स्टडआउट' पर आधारित हैं। तुलनात्मक कार्य, हालांकि, लचीला है। इस प्रकार, किसी भी प्रकार की स्क्रिप्ट का उपयोग जांच के लिए किया जा सकता है। यह किसी भी भाषा पर लागू किया जा सकता है जो मानक आउटपुट का उत्पादन कर सकता है। HWUT होमपेज देखें।


एक सी नौसिखिया के रूप में, मुझे सी में टेस्ट संचालित विकास नामक स्लाइड्स मिलीं जो बहुत उपयोगी थीं । असल में, यह बिना किसी बाह्य निर्भरता के संदेश भेजने के लिए मानक assert() के साथ && का उपयोग करता है। अगर किसी को पूर्ण स्टैक परीक्षण ढांचे में उपयोग किया जाता है, तो यह संभवतः नहीं करेगा :)


मैं लगभग ratok के समान ही कहता हूं लेकिन यदि आपके पास इकाई परीक्षणों के लिए एक एम्बेडेड मोड़ है तो ...

Unity - इकाई परीक्षण सी कोड के लिए अत्यधिक अनुशंसित ढांचा।

एम्बेडेड सी के लिए इस धागे टीडीडी में उल्लिखित पुस्तक में उदाहरण यूनिटी (और सीपीयूयूटीएस्ट) का उपयोग करके लिखे गए हैं।



लिबू ( http://koanlogic.com/libu ) में एक यूनिट टेस्ट मॉड्यूल है जो स्पष्ट परीक्षण सूट / केस निर्भरता, परीक्षण अलगाव, समांतर निष्पादन और एक अनुकूलन रिपोर्ट फॉर्मेटर (डिफ़ॉल्ट प्रारूप xml और txt) की अनुमति देता है।

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


मिनूनिट पढ़ने के बाद मैंने सोचा कि बेहतर तरीका मैक्रो पर जोर देने के लिए परीक्षण था जिसे मैं रक्षात्मक प्रोग्राम तकनीक की तरह बहुत उपयोग करता हूं। तो मैंने मानक assert के साथ मिश्रित Minunit के एक ही विचार का इस्तेमाल किया। आप k0ga के ब्लॉग में अपना ढांचा (एक अच्छा नाम NoMinunit हो सकता है) देख सकते हैं


cmocka नामक नकली वस्तुओं के समर्थन के साथ सी के लिए एक सुरुचिपूर्ण इकाई परीक्षण ढांचा है। इसे केवल मानक सी लाइब्रेरी की आवश्यकता होती है, जो कंप्यूटिंग प्लेटफॉर्म (एम्बेडेड समेत) और विभिन्न कंपाइलर्स के साथ काम करता है।

इसमें सुबुनिट, टेस्ट एनीथिंग प्रोटोकॉल और जुनीट एक्सएमएल रिपोर्ट जैसे विभिन्न संदेश आउटपुट प्रारूपों के लिए भी समर्थन है।

एम्बेडेड प्लेटफॉर्म पर भी काम करने के लिए cmocka बनाया गया है और इसमें विंडोज़ समर्थन भी है।

एक साधारण परीक्षण इस तरह दिखता है:

#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>

/* A test case that does nothing and succeeds. */
static void null_test_success(void **state) {
    (void) state; /* unused */
}

int main(void) {
    const struct CMUnitTest tests[] = {
        cmocka_unit_test(null_test_success),
    };
    return cmocka_run_group_tests(tests, NULL, NULL);
}

API पूरी तरह से प्रलेखित है और कई उदाहरण स्रोत कोड का हिस्सा हैं।

Cmocka के साथ शुरू करने के लिए आपको LWN.net पर आलेख पढ़ना चाहिए: सी में नकली वस्तुओं के साथ यूनिट परीक्षण

cmocka 1.0 फरवरी 2015 को जारी किया गया है।


इससे पहले कि मैंने कार्यों को नकल करने के लिए एक रास्ता तलाशना शुरू किया, मैं एक विरासत सी अनुप्रयोग का परीक्षण नहीं कर पाया। मुझे सी फाइल को अलग करने के लिए बुरी तरह की जरूरत होती है जिसे मैं दूसरों से परीक्षण करना चाहता हूं। मैंने सेमीकॉक को एक कोशिश दी और मुझे लगता है कि मैं इसे अपनाएगा।

Cmock हेडर फ़ाइलों को स्कैन करता है और इसे प्राप्त प्रोटोटाइप के आधार पर नकली कार्यों को उत्पन्न करता है। मोक्स आपको सही अलगाव में सी फ़ाइल का परीक्षण करने की अनुमति देगा। आपको बस अपनी वास्तविक फाइल फ़ाइलों के बजाय अपनी टेस्ट फ़ाइल को मैक्स के साथ लिंक करना होगा।

सेमीकॉक का एक अन्य लाभ यह है कि यह मैक किए गए कार्यों को पारित पैरामीटर को मान्य करेगा, और यह आपको यह निर्दिष्ट करने देगा कि मैक को क्या रिटर्न मूल्य प्रदान करना चाहिए। यह आपके कार्यों में निष्पादन के विभिन्न प्रवाहों का परीक्षण करने के लिए बहुत उपयोगी है।

टेस्ट में विशिष्ट testA (), testB () फ़ंक्शंस होते हैं जिसमें आप उम्मीदें बनाते हैं, परीक्षणों को जांचने और जांचने के लिए कॉल कहते हैं।

अंतिम चरण एकता के साथ अपने परीक्षणों के लिए धावक उत्पन्न करना है। सीएमॉक एकता परीक्षण ढांचे से जुड़ा हुआ है। एकता अन्य किसी भी यूनिट परीक्षण ढांचे के रूप में सीखना आसान है।

कोशिश करने के लायक और समझने में काफी आसान है:

http://sourceforge.net/apps/trac/cmock/wiki

अद्यतन 1

एक और ढांचा जो मैं जांच कर रहा हूं वह है Cockockery।

http://code.google.com/p/cmockery/

यह यूनिट परीक्षण और मॉकिंग का समर्थन करने वाला एक शुद्ध सी ढांचा है। इसकी रूबी (कॉमॉक के विपरीत) पर कोई निर्भरता नहीं है और इसकी बाहरी libs पर बहुत कम निर्भरता है।

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

एक विशेष परीक्षण धावक की कोई ज़रूरत नहीं है। आपको केवल परीक्षणों की एक सरणी बनाने और इसे run_tests फ़ंक्शन में पास करने की आवश्यकता है। यहां कुछ और मैन्युअल काम भी है लेकिन मुझे निश्चित रूप से एक आत्मनिर्भर स्वायत्त ढांचे का विचार पसंद है।

इसके अलावा इसमें कुछ निफ्टी सी चाल शामिल हैं जिन्हें मैं नहीं जानता था।

कुल मिलाकर Cmockery शुरू करने के लिए mocks की थोड़ा और समझ की जरूरत है। उदाहरण आपको इस पर काबू पाने में मदद कर सकते हैं। ऐसा लगता है कि यह सरल यांत्रिकी के साथ काम कर सकता है।


CppUTest - इकाई परीक्षण सी कोड के लिए अत्यधिक अनुशंसित ढांचा।

एम्बेडेड सी के लिए इस थ्रेड टीडीडी में उल्लिखित पुस्तक में दिए गए उदाहरण CppUTest का उपयोग करके लिखे गए हैं।


मुझे आश्चर्य है कि कोई भी कटर का उल्लेख नहीं करता है (http://cutter.sourceforge.net/) आप सी और सी ++ का परीक्षण कर सकते हैं, यह सहजता से ऑटोोटूल के साथ एकीकृत करता है और इसमें वास्तव में एक अच्छा ट्यूटोरियल उपलब्ध है।


http://code.google.com/p/cmockery/ हाल ही में लॉन्च किया गया Google Code प्रोजेक्ट है जिसमें यूनिट परीक्षण लिखने के लिए सी लाइब्रेरी का उपयोग करना बहुत आसान है।


यदि आप अभी भी परीक्षण ढांचे के लिए शिकार पर हैं, तो CUnitWin32 Win32 / NT प्लेटफ़ॉर्म के लिए एक है।

यह एक मौलिक समस्या हल करता है जिसे मैंने अन्य परीक्षण ढांचे के साथ सामना किया। अर्थात् वैश्विक / स्थिर चर एक निर्धारक स्थिति में हैं क्योंकि प्रत्येक परीक्षण को एक अलग प्रक्रिया के रूप में निष्पादित किया जाता है।







embedded