खोज…


परिचय

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

सी। के लिए कई यूनिट टेस्टिंग फ्रेमवर्क उपलब्ध हैं। उदाहरण के लिए, यूनिटी एक शुद्ध सी फ्रेमवर्क है। लोग अक्सर C कोड का परीक्षण करने के लिए C ++ परीक्षण ढांचे का उपयोग करते हैं; कई सी ++ टेस्ट फ्रेमवर्क भी हैं।

टिप्पणियों

दोहन परीक्षण:

TDD - टेस्ट संचालित विकास:

C में दोहरे तंत्र का परीक्षण करें:

  1. लिंक-टाइम प्रतिस्थापन
  2. कार्य सूचक प्रतिस्थापन
  3. प्रीप्रोसेसर प्रतिस्थापन
  4. संयुक्त लिंक-टाइम और फ़ंक्शन पॉइंटर प्रतिस्थापन

C में प्रयुक्त C ++ टेस्टिंग फ्रेमवर्क पर ध्यान दें: C प्रोग्राम की टेस्टिंग के लिए C ++ फ्रेमवर्क का उपयोग करना यहाँ बताया गया एक सामान्य अभ्यास है

CppUTest

CppUTest एक है XUnit इकाई C और C ++ के परीक्षण के लिए शैली ढांचा। यह C ++ में लिखा गया है और इसका उद्देश्य डिजाइन में पोर्टेबिलिटी और सरलता है। इसमें मेमोरी लीक का पता लगाने, मॉक बनाने और Google टेस्ट के साथ-साथ इसके परीक्षण चलाने का समर्थन है। दृश्य स्टूडियो और ग्रहण सीडीटी के लिए सहायक स्क्रिप्ट और नमूना परियोजनाओं के साथ आता है।

#include <CppUTest/CommandLineTestRunner.h>
#include <CppUTest/TestHarness.h>


TEST_GROUP(Foo_Group) {}

TEST(Foo_Group, Foo_TestOne) {}

/* Test runner may be provided options, such
   as to enable colored output, to run only a
   specific test or a group of tests, etc. This
   will return the number of failed tests. */

int main(int argc, char ** argv)
{
    RUN_ALL_TESTS(argc, argv);
}

एक परीक्षण समूह में एक setup() और एक teardown() विधि हो सकती है। setup विधि को प्रत्येक परीक्षण से पहले कहा जाता है और teardown() विधि को कहा जाता है। दोनों वैकल्पिक हैं और या तो स्वतंत्र रूप से छोड़ा जा सकता है। अन्य तरीके और चर भी एक समूह के अंदर घोषित किए जा सकते हैं और उस समूह के सभी परीक्षणों के लिए उपलब्ध होंगे।

TEST_GROUP(Foo_Group)
{
    size_t data_bytes = 128;
    void * data;

    void setup()
    {
        data = malloc(data_bytes);
    }

    void teardown()
    {
        free(data);
    }

    void clear()
    {
        memset(data, 0, data_bytes);
    }
}

एकता परीक्षण की रूपरेखा

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

एक साधारण परीक्षण मामला जो किसी फ़ंक्शन के रिटर्न मान की जांच करता है, वह निम्नानुसार लग सकता है

void test_FunctionUnderTest_should_ReturnFive(void)
{
    TEST_ASSERT_EQUAL_INT( 5, FunctionUnderTest() );
}

एक पूर्ण परीक्षण फ़ाइल की तरह लग सकता है:

#include "unity.h"
#include "UnitUnderTest.h" /* The unit to be tested. */

void setUp (void) {} /* Is run before every test, put unit init calls here. */
void tearDown (void) {} /* Is run after every test, put unit clean-up calls here. */

void test_TheFirst(void)
{
    TEST_IGNORE_MESSAGE("Hello world!"); /* Ignore this test but print a message. */
}

int main (void)
{
    UNITY_BEGIN();
    RUN_TEST(test_TheFirst); /* Run the test. */
    return UNITY_END();
}  

एकता कुछ उदाहरण परियोजनाओं, मेकफाइल्स और कुछ रूबी रेक स्क्रिप्ट के साथ आती है जो लंबी फ़ाइलों को थोड़ा आसान बनाने में मदद करती हैं।

CMocka

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

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

void null_test_success (void ** state) {}

void null_test_fail (void ** state)
{
    assert_true (0);
}

/* These functions will be used to initialize
   and clean resources up after each test run */
int setup (void ** state)
{
    return 0;
}

int teardown (void ** state)
{
    return 0;
}


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

    /* If setup and teardown functions are not
       needed, then NULL may be passed instead */

    int count_fail_tests =
        cmocka_run_group_tests (tests, setup, teardown);

    return count_fail_tests;
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow