From 124e87a3038a34e0761fe5f96c06ace1f7b2442a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=A4mer?= Date: Thu, 15 Apr 2021 22:26:14 +0200 Subject: [PATCH] Apply missing suggestions from code review for GTEST_SKIP Co-authored-by: Eric Schmidt --- docs/advanced.md | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/docs/advanced.md b/docs/advanced.md index 9b44a582..6c1d1a9a 100644 --- a/docs/advanced.md +++ b/docs/advanced.md @@ -529,25 +529,31 @@ partially-destructed state! You almost certainly want to `abort` or use ## Skipping test execution -Related to pseudo assertions `SUCCEED()` and `FAIL()` you can prevent further test -execution with the `GTEST_SKIP()` macro. +Related to the assertions `SUCCEED()` and `FAIL()`, you can prevent further test +execution at runtime with the `GTEST_SKIP()` macro. This is useful when you need +to check for preconditions of the system under test during runtime and skip tests +in a meaningful way. -`GTEST_SKIP` can be used in test cases or in `SetUp()` methods of classes inherited -from either `::testing::Environment` or `::testing::Test`. The latter is a convenient -way to check for preconditions of the system under test during runtime and skip -the test in a meaningful way. +`GTEST_SKIP()` can be used in individual test cases or in the `SetUp()` methods of +classes derived from either `::testing::Environment` or `::testing::Test`. For +example: -Based on googletest's own test code: ```c++ -class Fixture : public Test { +TEST(SkipTest, DoesSkip) { + GTEST_SKIP() << "Skipping single test"; + EXPECT_EQ(0, 1); // Won't fail; it won't be executed +} + +class SkipFixture : public ::testing::Test { protected: void SetUp() override { - GTEST_SKIP() << "skipping all tests for this fixture"; + GTEST_SKIP() << "Skipping all tests for this fixture"; } }; -TEST_F(Fixture, SkipsOneTest) { - EXPECT_EQ(5, 7); // won't fail, it won't get executed +// Tests for SkipFixture won't be executed. +TEST_F(SkipFixture, SkipsOneTest) { + EXPECT_EQ(5, 7); // Won't fail } ```