C++ Google Test 샘플
12 Jan 2022 | C++Google Test
Google Test 샘플 코드입니다.
CMakeLists.txt
FetchContent
명령어를 이용해서 Google Test 라이브러리를 연동합니다.
cmake_minimum_required(VERSION 3.21) project(gtest_sample) set(CMAKE_CXX_STANDARD 17) include(FetchContent) FetchContent_Declare(googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG release-1.11.0) FetchContent_MakeAvailable(googletest) enable_testing() add_executable(gtest_sample Calculator.cpp CalculatorTests.cpp) target_link_libraries( gtest_sample gtest_main )
Calculator.hpp
#ifndef GTEST_SAMPLE__CALCULATOR_H_ #define GTEST_SAMPLE__CALCULATOR_H_ class Calculator { public: Calculator(); public: int add(int x, int y); int sub(int x, int y); }; #endif //GTEST_SAMPLE__CALCULATOR_H_
Calculator.cpp
#include "Calculator.hpp" Calculator::Calculator() { } int Calculator::add(int x, int y) { return x + y; } int Calculator::sub(int x, int y) { return x - y; }
CalculatorTests.cpp
#include <gtest/gtest.h> #include "Calculator.h" TEST(Calculator_Add_Test, test_name) { Calculator c; EXPECT_EQ(8, c.add(3, 5)); } TEST(Calculator_Sub_Test, test_name) { Calculator c; EXPECT_EQ(7, c.sub(12, 5)); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
실행결과
/Users/snowdeer/Workspace/cpp/gtest/cmake-build-debug/gtest_sample [==========] Running 2 tests from 2 test suites. [----------] Global test environment set-up. [----------] 1 test from Calculator_Add_Test [ RUN ] Calculator_Add_Test.test_name [ OK ] Calculator_Add_Test.test_name (0 ms) [----------] 1 test from Calculator_Add_Test (0 ms total) [----------] 1 test from Calculator_Sub_Test [ RUN ] Calculator_Sub_Test.test_name [ OK ] Calculator_Sub_Test.test_name (0 ms) [----------] 1 test from Calculator_Sub_Test (0 ms total) [----------] Global test environment tear-down [==========] 2 tests from 2 test suites ran. (0 ms total) [ PASSED ] 2 tests. Process finished with exit code 0