이번 시간에는 Cunit사용방법에 대해 간단하게 설명하겠습니다.

(글로 설명하기가 어려워서 짧게.... ^^;)

 

1.  Cunit사용방법

  1) 테스트를 위한 함수를 작성.

  2) 테스트 레지스트리를 초기화

  3) 테스트 레지스트리에 스위트를 추가

  4) 스위트에 테스트 추가

  5) 적절한 인터페이스 예를 사용하여 실행 테스트

    - Automated : xml파일 출력

    - Basic : 표준 출력

    - Console : 콘솔입력으로 실행 선택/표준출력

    - Curses : 그래픽 인터페이스(UNIX계열)

  6) 테스트 레지스터 정리


2. 소스코드로 보면 아래와 같은 형식입니다

#include "CUnit/CUnit.h"
#include "CUnit/Console.h"
#include "CUnit/Basic.h"

#include "테스트할대상.h"


/**
 * 테스트 코드 작성

 

 */
void test01(void) {

  // 예상값과 결과값이 같다고 예상함

  CU_ASSERT_EQUAL("테스트할 함수(파라미터)", "예상값");

}

// CU_ASSERT_EQUAL의 종류에 대해서는 Cunit홈페이지 참조

//  http://cunit.sourceforge.net/doc/writing_tests.html#tests

 

 

void init(void) {

  // 테스트전 처리작업

}

 

void end(void) {

// 테스트후 처리작업

}


int main() {

 CU_pSuite suite = NULL;
 // 2)테스트 레지스트리를 초기화
 CU_initialize_registry();

 

 // 3)테스트 레지스트리에 스위트를 추가
 suite = CU_add_suite("스위트 타이틀", "테스트 시작전 세팅 작업함수", "테스트후 처리할 함수");

 // 예) 테스트 전후로 처리할 일이 없으면 NULL을 넣음.

 suite = CU_add_suite("테스트 스위트1",  init,  end);

 

 // 4)스위트에 테스트 추가
 // CU_add_test(suite, "타이틀", 테스트함수);
 // 예)
 CU_add_test(suite, "test01", test01);

 

 // 5) 적절한 인터페이스 예를 사용하여 실행 테스트
 CU_console_run_tests(); // 콘솔


 // 6) 테스트 레지스터 정리
 CU_cleanup_registry();

 return 0;

}

 

Cunit테스트는 어떤 함수의 리턴값이 예상치와 결과치가 맞는지에 대한 블랙박스 테스트에 아주 용이 합니다.

위와 같은 형식으로 테스트 코드를 작성하고 실행 하면 테스트의 성공여부를 한눈에 볼수 있습니다.

아래 그림은 콘솔모드로 실행 했을때 나오는 결과 입니다.

 

exec1.png

 

솔직히 이건만 가지고는 잘 모르겠죠??

 제가 글쓰는 제주가 없어서... 설명이 좀... ㅡㅡ;;

그럼, 다음 시간에는 샘플코드로 테스트 하는 방법을 설명하겠습니다.(설명이라기 보단 그림으로....^^;)

 

감사합니다.