GoogleTest: C++ testing and mocking framework
xUnit-based C++ testing framework with integrated mocking.
Learn more about GoogleTest
GoogleTest is a C++ unit testing framework based on the xUnit architecture that automates test discovery and execution. It is implemented in C++ and requires C++17 or later as of version 1.17.0. The framework supports both fatal and non-fatal test failures, value-parameterized tests with multiple input values, type-parameterized tests across different data types, and death tests for verifying program exit behavior. It is used in large-scale projects including Chromium, LLVM, Protocol Buffers, and OpenCV for validating C++ code correctness.
Unified Testing Framework
Combines unit testing and mocking in a single maintained codebase, eliminating the need to manage separate GoogleTest and GoogleMock dependencies. Simplifies build configuration and version compatibility for projects requiring both capabilities.
Parameterized Test Variants
Supports value-parameterized tests with different input values and type-parameterized tests across multiple data types. Reduces code duplication when testing functions with varying inputs or validating generic implementations.
Death Test Support
Verifies that code properly terminates under expected conditions by testing exit codes and error messages. Death tests ensure crash handlers and fatal error paths work correctly without crashing the test runner itself.
#include <gtest/gtest.h>
int Add(int a, int b) { return a + b; }
TEST(MathTest, AdditionWorks) {
EXPECT_EQ(Add(2, 3), 5);
EXPECT_EQ(Add(-1, 1), 0);
EXPECT_NE(Add(2, 2), 5);
}
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
Neovim
Refactored Vim with modern APIs, async job control, and Lua scripting while maintaining plugin compatibility.
CXX
Safe FFI library for calling C++ from Rust and vice versa with zero-overhead bindings via code generation.
yt-dlp
Python CLI for downloading audio/video from thousands of websites, fork of youtube-dl.
HTTPX
Fast HTTP probing with response metadata extraction.
whatsmeow
Go client library for WhatsApp web multidevice protocol.