반응형

gtest 는 GoogleTest의 줄임말로, C++ 테스팅 프레임워크입니다.

이것을 활용하여 C++ 코드를 테스트해보려 합니다.

 

STEP 1. gtest를 설치합니다.

sudo apt-get install libgtest-dev

 

STEP 2. main 예제코드를 생성합니다. (테스트 대상 코드)

add.h 파일 (테스트 대상 코드가 담긴 파일)

// add.h
#ifndef ADD_H
#define ADD_H

int add(int a, int b) {
    return a + b;
}

#endif // ADD_H

 

 

 

STEP 3. Test 코드를 생성합니다. (테스트 코드)

add_test.cpp 파일은 테스트 코드가 담긴 파일입니다.

// add_test.cpp
#include <gtest/gtest.h>
#include "add.h"

// Test case for the add function
TEST(AdditionTest, HandlesPositiveNumbers) {
    EXPECT_EQ(add(1, 2), 3);
    EXPECT_EQ(add(5, 5), 10);
}

TEST(AdditionTest, HandlesNegativeNumbers) {
    EXPECT_EQ(add(-1, -2), -3);
    EXPECT_EQ(add(-5, 5), 0);
}

TEST(AdditionTest, HandlesMixedNumbers) {
    EXPECT_EQ(add(-3, 3), 0);
    EXPECT_EQ(add(10, -10), 0);
}

// Main function to run all the tests
int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

 

 

STEP 4. 테스트 실행파일 빌드하고 실행합니다.

아래의 명령어를 통해 테스트 실행파일을 만듭니다.

 g++ add_test.cpp -lgtest -lgtest_main -pthread -o add_test

 

 

현재까지 아래의 파일들이 있을 겁니다.

$ ls
add.h  add_test  add_test.cpp

 

 

 

이후 테스트 실행파일을 실행합니다.

$ ./add_test
[==========] Running 3 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 3 tests from AdditionTest
[ RUN      ] AdditionTest.HandlesPositiveNumbers
[       OK ] AdditionTest.HandlesPositiveNumbers (0 ms)
[ RUN      ] AdditionTest.HandlesNegativeNumbers
[       OK ] AdditionTest.HandlesNegativeNumbers (0 ms)
[ RUN      ] AdditionTest.HandlesMixedNumbers
[       OK ] AdditionTest.HandlesMixedNumbers (0 ms)
[----------] 3 tests from AdditionTest (0 ms total)

[----------] Global test environment tear-down
[==========] 3 tests from 1 test suite ran. (0 ms total)
[  PASSED  ] 3 tests.

 

 

위와 같이 STEP 3에서 작성했던 테스트 함수들이 실행된 것을 확인했으며,

이로써, STEP 1에서 작성했던 main 예제코드를 테스트할 수 있었습니다.

 

 

이 글이 유익했다면 아래의 하트 부탁드립니다.

 

 

반응형