C/Unit Test
gtest를 활용하여 Unit Test 실행하기
2024. 11. 13. 00:38반응형
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 예제코드를 테스트할 수 있었습니다.
이 글이 유익했다면 아래의 하트 부탁드립니다.
반응형
'C > Unit Test' 카테고리의 다른 글
[Unit Test] libgtest-dev 지우기 (0) | 2024.11.22 |
---|---|
Makefile로 C++ 파일을 Gtest와 Gcov를 이용해서 커버리지 리포트 산출하기 (0) | 2024.11.21 |
CMake를 활용해 Gtest 코드커버리지 뽑기 (1) | 2024.11.13 |
gtest 및 lcov를 활용하여 Unit Test 실행하고 Coverage Report 뽑기 (2) | 2024.11.13 |
gcov를 이용하여 Coverage Report 산출하기 (C, C++) (2) | 2024.11.13 |