//분석을 시작합니다. 가장 접근하기 수월한
//혹은 무언가를 테스트 하며 직접 유닛을 사용하기 위한 방법을
//먼저 알아봅니다.
//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 );
}