2013-10-11 6 views
2
C 또는 C++

I는 다음과 같은 구조의 프로그램이있는 경우 : C 유닛 테스트 기능에

..includes.. 
..defines.. 

void function_one(int i) { 
    ... 
} 

void function_two(const char * str) { 
    ... 
} 

int main(int argc, char *argv[]) { 
    ... 
} 

main.c/cpp로 저장한다.

main.c/cpp에있는 기능에 전화를 걸 수있는 새 파일 test.c/cpp을 작성하려면 어떻게해야합니까? main.c test.c
실행 테스트 출력 :

컴파일러 플래그 : -etest_main
파일은 컴파일

어떻게 지금 그 일을하고 있어요 "여기"Blank no errors

내 테스트의 주요 인쇄를하지만 확실하지 메신저 왜 테스트 실행 파일 isnt.

+0

코드 스 니펫에 몇 가지 세부 정보를 추가 할 수 있습니다. "여기에"인쇄 할 줄은 어디입니까 –

답변

5

CUnit에서 휠을 재발 명할 필요가 없습니다. Devs에 대한 소개는 doc입니다.

이 테스트 프레임 워크는 xUnit 시리즈의 일부이며 수년간 사용해 왔습니다.

+0

어떻게 질문 기능 문제가 주 기능 옆에서 단위 테스트를 받아야합니까? – villekulla

0

동일한 컴파일 단위에있는 함수를 main 함수로 쉽게 테스트 할 수 없습니다.

가능한 해결책 :

분할하여 main.{c/cpp} 두에 소스 파일 (단위 컴파일). 한 파일은 main 기능 만 포함하고 다른 파일은 다른 모든 기능을 포함해야합니다. 단위 테스트를 수행 할 때, 단일 주요 기능을 포함하는 컴파일 단위로 링크하지 마십시오.

또는 단위 테스트 용으로 컴파일 할 때 매크로를 사용하여 main 기능을 제외하십시오.

+1

또는 "main"이외의 항목에서 시작하려면 로더의 진입 점 옵션을 사용하십시오. 이는 "메인"을 또 다른 기능으로 만듭니다. – mpez0

+0

@ mpez0 다른 문제가 발생할 수 있다는 http://stackoverflow.com/a/3379260/2824853을 참조하십시오 ... – villekulla