skip menu and go to main content

body start

Advanced CUnit Test(ACT)

  분석 중 : test항목 추가 방법 1 ]

04.10.22-15:22:03

311089

Submitted by 정봉국

 

View487

 

//분석을 시작합니다. 가장 접근하기 수월한
//혹은 무언가를 테스트 하며 직접 유닛을 사용하기 위한 방법을
//먼저 알아봅니다.

//Top : Test를 위해 가장 처음 수정할 부분
//--------- allTests.c --------------//
extern ITest* ACTStdLibTest_tests(void); //ACT Standard Library 그룹을 테스트하는 외부 함수를 선언

int main (int argc, const char* argv[])
{
        ITestRunner trunner; //ITestRunner 인스턴스 선언
        ITestRunner_Ctor(&trunner); //Setter : 테스트 셋팅. - 구체적으로 무엇을 셋팅하는 것인지는 모름.
        ITestRunner_start(&trunner); //Start : 테스트 시작
                
  ITestRunner_addTest(&trunner, ACTStdLibTest_tests()); //ACT Standard Library 그룹을 테스트 한다.
  //추가 혹은 수정 : 이곳에 각종 테스트 그룹들을 추가한다.

        ITestRunner_run(&trunner); //run : 테스트 실행
        ITestRunner_end(&trunner); //end : 테스트 종료
        return 0;
}

//Middle : 테스트를 위해 두번째로 수정할 부분
//--------- actstdlibTest.c --------------//
ITest* ACTStdLibTest_tests(void) // ACT Standard Library 그룹을 테스트한다.
{
        
        static ITestCaller ACTStdLibTest;
        ITestCaller_Ctor(&ACTStdLibTest,"ACTStdLibTest",setUp,tearDown);
        
        //테스트 항목 추가를 위해서는 두가지 방법이 있는데
        // 1. 추가하기 위한 전체 코드
        {
                static ITestFixture fixture;
                ITestFixture_Ctor(&fixture,"teststrcpy",teststrcpy); //teststrcpy()함수를 통해서 strcpy를 테스트
                ITestCaller_AddTestFixture(&ACTStdLibTest, &fixture);
        }
        // 2. 매크로 이용 : 추가 함수가 한 눈에 보기 쉽다.
        ACT_UNIT_ADD_FIXTURE(&ACTStdLibTest,"teststrlen",teststrlen); //teststrlen()함수를 통해서 strlen을 테스트
        //이곳에 다른 테스트 항목을 추가한다.
        
        return (ITest*)&ACTStdLibTest;
}

//Down : 테스트 세부 항목 추가
//위에서 추가 했던 항목 중 strcpy 테스트입니다.
static void teststrcpy(void)
{
        char buf[32];
        char *p;

        p = ACT_strcpy(buf, "test");
        ACT_TEST_ASSERT_EQUAL_STRING("test", buf);
        ACT_TEST_ASSERT( p == buf );
}

Comments on this artfact

1 Comments

정봉국

//분석을 시작합니다. 가장 접근하기 수월한
//혹은 무언가를 테스트 하며 직접 유닛을 사용하기 위한 방법을
//먼저 알아봅니다.

//Top : Test를 위해 가장 처음 수정할 부분
//--------- allTests.c --------------//
extern ITest* ACTStdLibTest_tests(void); //ACT Standard Library 그룹을 테스트하는 외부 함수를 선언

int main (int argc, const char* argv[])
{
        ITestRunner trunner; //ITestRunner 인스턴스 선언
        ITestRunner_Ctor(&trunner); //Setter : 테스트 셋팅. - 구체적으로 무엇을 셋팅하는 것인지는 모름.
        ITestRunner_start(&trunner); //Start : 테스트 시작
                
  ITestRunner_addTest(&trunner, ACTStdLibTest_tests()); //ACT Standard Library 그룹을 테스트 한다.
  //추가 혹은 수정 : 이곳에 각종 테스트 그룹들을 추가한다.

        ITestRunner_run(&trunner); //run : 테스트 실행
        ITestRunner_end(&trunner); //end : 테스트 종료
        return 0;
}

//Middle : 테스트를 위해 두번째로 수정할 부분
//--------- actstdlibTest.c --------------//
ITest* ACTStdLibTest_tests(void) // ACT Standard Library 그룹을 테스트한다.
{
        
        static ITestCaller ACTStdLibTest;
        ITestCaller_Ctor(&ACTStdLibTest,"ACTStdLibTest",setUp,tearDown);
        
        //테스트 항목 추가를 위해서는 두가지 방법이 있는데
        // 1. 추가하기 위한 전체 코드
        {
                static ITestFixture fixture;
                ITestFixture_Ctor(&fixture,"teststrcpy",teststrcpy); //teststrcpy()함수를 통해서 strcpy를 테스트
                ITestCaller_AddTestFixture(&ACTStdLibTest, &fixture);
        }
        // 2. 매크로 이용 : 추가 함수가 한 눈에 보기 쉽다.
        ACT_UNIT_ADD_FIXTURE(&ACTStdLibTest,"teststrlen",teststrlen); //teststrlen()함수를 통해서 strlen을 테스트
        //이곳에 다른 테스트 항목을 추가한다.
        
        return (ITest*)&ACTStdLibTest;
}

//Down : 테스트 세부 항목 추가
//위에서 추가 했던 항목 중 strcpy 테스트입니다.
static void teststrcpy(void)
{
        char buf[32];
        char *p;

        p = ACT_strcpy(buf, "test");
        ACT_TEST_ASSERT_EQUAL_STRING("test", buf);
        ACT_TEST_ASSERT( p == buf );
}

04.10.22-15:22:03