More actions
imported>qa22ahj No edit summary |
imported>qa22ahj No edit summary |
||
| Line 2: | Line 2: | ||
[https://code.google.com/p/googletest/] | [https://code.google.com/p/googletest/] | ||
cpp 기반의 테스트 프레임워크이며 Linux기준에서 간편하게 사용할수 있다. | cpp 기반의 테스트 프레임워크이며 Linux기준에서 간편하게 사용할수 있다. 크로미늄 프로젝트의 기본 테스트 프레임워크이며 cpp의 테스팅을 보다 쉽게 하는데에 중점을 두고 있다. main함수에서 test함수를 호출해야 하기 떄문에 [make]와 -D 플래그를 활용하여 테스트 버전과 아닌버전을 따로 따로 컴파일 해야한다. 이클립스 플러그인을 제공하는 JUnit와 비교가 되는 점이나 JUnit도 콘솔 환경에서 코딩할경우 마찬가지 문제가 있으므로 비슷비슷 하다고 할수 있다. make파일을 한번 잘 작성하면 어렵지는 않으므로 할만하다. | ||
== 설치 == | == 설치 == | ||
Latest revision as of 07:26, 6 November 2013
Google Test Framework
[1] cpp 기반의 테스트 프레임워크이며 Linux기준에서 간편하게 사용할수 있다. 크로미늄 프로젝트의 기본 테스트 프레임워크이며 cpp의 테스팅을 보다 쉽게 하는데에 중점을 두고 있다. main함수에서 test함수를 호출해야 하기 떄문에 [make]와 -D 플래그를 활용하여 테스트 버전과 아닌버전을 따로 따로 컴파일 해야한다. 이클립스 플러그인을 제공하는 JUnit와 비교가 되는 점이나 JUnit도 콘솔 환경에서 코딩할경우 마찬가지 문제가 있으므로 비슷비슷 하다고 할수 있다. make파일을 한번 잘 작성하면 어렵지는 않으므로 할만하다.
설치
Linux
- Fedora
# sudo yum install gtest gtest-devel
- From Source
- [2]에서 최신버전을 받는다.
- 압축을 푼다
make
사용법
예제 소스
#include <gtest/gtest.h>
#include <iostream>
using namespace std;
int add(int, int);
TEST(main, addTest){
//given
int a = 3;
int b = 5;
//when
int result = add(a, b);
//then
ASSERT_EQ(result, 8);
}
int main(int argc, char ** argv){
testing::InitGoogleTest(&argc, argv);
int retval = RUN_ALL_TESTS();
if(retval != 0) return retval;
}
int add(int a, int b){
return a + b;
}
컴파일
#yum 으로 깐경우 gcc -c main.cpp gcc -lgtest -o main main.cpp #소스로 깐경우 gcc -c -I[include 폴더 위치] main.cpp gcc -o main -lgtest -L[라이브러러리 경로] main.cpp
yum으로 깐경우 기본 경로에 추가해주기때문에 별도의 include, library path 설정이 필요없다.