常见用法
定义测试用例
TEST宏创建一个测试用例,第一个参数是测试套件的名称,第二个参数是测试用例的名称。测试用例的名称必须是唯一的,否则会报错。EXPECT
相关的宏用于检查测试用例的预期结果,如果预期结果和实际结果不一致,那么测试用例会失败,但是会继续往下执行。ASSERT
相关的宏用于检查测试用例的预期结果,如果预期结果和实际结果不一致,那么测试用例会失败,并且后续的测试用例不会执行。
// meta_test.cpp
#include <gtest/gtest.h>
TEST(TestSuiteName, TestName)
{
// test body
EXPECT_EQ(1, 1);
ASSERT_EQ(1, 1);
}
运行测试用例
我们可以编写一个一个CMakeLists.txt来运行测试。首先是获取gtest的源码,然后编译测试文件,并链接gtest。运行时在build目录底下输入ctest即可运行所有的test。
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
)
# set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
include(GoogleTest)
add_executable(meta_test meta_test.cpp)
target_link_libraries(meta_test GTest::gtest_main pmss)
# target_include_directories(meta_test PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
gtest_discover_tests(meta_test)