1. Assertions
EXPECT_*
Do not interrupt when encountering an error
ASSERT_*
Interrupt when encountering an error
User-defined error message
e.g.
EXPECT_EQ(x, y) << "x and y are unequal"
2. Assertions Reference
include <gtest/gtest.h>- An assertion of wide string will be translate to UTF-8
2.1. Boolean Comparison
- suffix
- TRUE
- FALSE
- usage
- ASSERT_TRUE (condition)
- EXPECT_FALSE (condition)
- range
- bool
2.2. Binary Comparison
- suffix
- EQ
- NE
- LT
- LE
- GT
- GE
- usage
- EXPECT_EQ (var1, var2)
- ASSERT_EQ (var1, var2)
- range
- int
- char
- pointer
2.3. String Comparison
- suffix
- EQ
- NE
- CASEEQ
- CASENE
- GT
- GE
- usage
- EXPECT_STREQ (str1, str2)
- ASSERT_STREQ (str1, str2)
- range
- char*
- wchar_t*
2.4. Float&Double Comparison
- suffix
- EQ
- $$\le abs_error$ NEAR
- usage
- EXPECT_FLOAT_EQ (var1, var2)
- EXPECT_NEAR (var1, var2, abs_err)
- range
- float
- double
- int
3. Test Fixture
- purpose
- share variables and configurations
- usage
class C : public ::testing::Test {
protected:
void SetUp() override;
void TearDown() override;
}
TEST_F(C, case_name) {
// details..
}
4. Main
int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
GTEST_FLAG_SET(death_test_style, "fast");
return RUN_ALL_TESTS();
}