CxxTest 사용법
작성자 : 김문규
최초 작성일 : 2008. 3.23
1. 환경
- linux FC6, 다른 환경에도 상관없음
2. 목적
- CLogic class의 기능 함수들의 unit test를 하려고 한다.
3. 방법
- (targetclass이름)test.h 라는 file을 생성
- (꼭 test.h로 끝나야 한다. perl script때문이라고 함.)
- CxxTest::TestSuite를 상속받는 class를 정의
- setup()에는 테스트 전 초기화 작업을 정의
- teardown()에는 테스트 후 종료 작업을 정의
- testXXXX() 함수에 하고자 하는 작업을 정의
- Makefile 작성
하단 예제의 빨간색이 기존 Makefile에 추가해야 할 것들
cxxtestgen.pl을 이용해서 runner.cpp를 생성하고 이를 빌드! 수행!
4. Complete Guide
- 자세한 사항은 첨부 파일을 참조
5. Sample codes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "logic.h"
int CLogic::func1(int a)
{
int c = 0;
c = a * 100;
printf("result : %d\n", c);fflush(stdout);
return c;
}
class CLogic
{
public:
int func1(int a);
protected:
int m_val1;
char* m_str1;
private:
};
#include <cxxtest/TestSuite.h>
#include "./logic.h"
class CLogicTest:public CxxTest::TestSuite
{
public:
CLogic logicclass;
void setUp()
{
}
void tearDown()
{
}
void testfunc1(void)
{
TS_ASSERT(logicclass.func1(12) == 1200);
}
};
CC = g++
CFLAGS = -g -Wall
LD_FLAGS = $(LIBS)
LIBOBJS := logic.o
APP1OBJS := main.o
BIN := logic
all: $(BIN) runner
$(BIN): $(APP1OBJS) $(LIBOBJS)
$(CC) -o $@ $^ $(LD_FLAGS)
#.cpp.o:
# $(CC) -c $(CFLAGS) $<
runner: runner.cpp $(LIBOBJS)
$(CC) -o $@ $^ $(LD_FLAGS)
runner.cpp: logictest.h
./cxxtestgen.pl -o $@ --error-printer $^
clean:
rm -f $(TEST) $(APP1OBJS) $(LIBOBJS) $(BIN)
rm runner*
'개발 노트' 카테고리의 다른 글
Internet Explorer 7 검색 공급자 주소 (0) | 2008.03.24 |
---|---|
성공하는 프로그래머들의 9가지 코딩 습관 (1) | 2008.03.23 |
Unix/Linux Redirection (0) | 2008.03.23 |
int atoi(char* p) 함수를 구현하라. (0) | 2008.03.23 |
Linux에서 DNS Server 설정하기 (0) | 2008.03.23 |