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

Googletest: Difference between revisions

From ZeroWiki
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
    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 설정이 필요없다.


도구분류