Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Googletest

From ZeroWiki
Revision as of 07:26, 6 November 2013 by imported>qa22ahj
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Google Test Framework

[1] cpp 기반의 테스트 프레임워크이며 Linux기준에서 간편하게 사용할수 있다. 크로미늄 프로젝트의 기본 테스트 프레임워크이며 cpp의 테스팅을 보다 쉽게 하는데에 중점을 두고 있다. main함수에서 test함수를 호출해야 하기 떄문에 [make]와 -D 플래그를 활용하여 테스트 버전과 아닌버전을 따로 따로 컴파일 해야한다. 이클립스 플러그인을 제공하는 JUnit와 비교가 되는 점이나 JUnit도 콘솔 환경에서 코딩할경우 마찬가지 문제가 있으므로 비슷비슷 하다고 할수 있다. make파일을 한번 잘 작성하면 어렵지는 않으므로 할만하다.

설치

Linux

  • Fedora
# sudo yum install gtest gtest-devel
  • From Source
    1. [2]에서 최신버전을 받는다.
    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 설정이 필요없다.


도구분류