#ifdef UNIT_TEST單元測試宏開關

之前看到有別人用過,終於在網上找到說明了。

APPENDIX
Sample C/C++ test driver

/* File Name : UnitTestExample.c */

#include < stdio.h >

int addTo( int preValue, operator )
{
    int postValue = preValue + operator;
    return postValue;
}

int subtractFrom( int preValue, operator )
{
    int postValue = preValue - operator;
    return postValue;
}

/* Compile with -D switch to run unit tests.
 *      Example : gcc -D UNIT_TEST -o example UnitTestExample.c
 */

#ifdef UNIT_TEST
int main()

    preValue = 0;
    operator = 5;
    int returnValue;

    /* Test 01 - Test function addTo() */
    returnValue = addTo( preValue, operator );
    if( (returnValue - operator) == 0 )
        printf( "Test 01 passed./n" );
    else
        printf( "Test 01 failed./n" );

    /* Test 02 - Test function subtractFrom() */
    returnValue = subtractFrom( preValue, operator );
    if( (returnValue + operator) == 0 )
        printf( "Test 02 passed./n" );
    else
        printf( "Test 02 failed./n" );
    return 0;
}

/* Compile without -D switch to run main program.
 *      Example : gcc -o example UnitTestExample.c
 */

#else
int main()
{
    int accumulation = 0;
    int preValue = 0;
    int operator = 25;
    int postValue, i;
    for( i = 0; i < 10; i++ )     
        accumulation += addTo( preValue, operator );
    postValue = subtractFrom( accumulation, operator );
    printf( "%s%d/n", "postValue = ", postValue );
    return 0;
}
#endif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章