More actions
imported>qa22ahj No edit summary |
imported>qa22ahj No edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Google Test Framework = | = Google Test Framework = | ||
cpp 기반의 테스트 프레임워크이며 Linux기준에서 간편하게 사용할수 있다. | [https://code.google.com/p/googletest/] | ||
cpp 기반의 테스트 프레임워크이며 Linux기준에서 간편하게 사용할수 있다. 크로미늄 프로젝트의 기본 테스트 프레임워크이며 cpp의 테스팅을 보다 쉽게 하는데에 중점을 두고 있다. main함수에서 test함수를 호출해야 하기 떄문에 [make]와 -D 플래그를 활용하여 테스트 버전과 아닌버전을 따로 따로 컴파일 해야한다. 이클립스 플러그인을 제공하는 JUnit와 비교가 되는 점이나 JUnit도 콘솔 환경에서 코딩할경우 마찬가지 문제가 있으므로 비슷비슷 하다고 할수 있다. make파일을 한번 잘 작성하면 어렵지는 않으므로 할만하다. | |||
== 설치 == | == 설치 == | ||
| Line 15: | Line 16: | ||
== 사용법 == | == 사용법 == | ||
=== 예제 소스 === | |||
#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 설정이 필요없다. | |||
---- | |||
[[도구분류]] | |||
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 설정이 필요없다.