diff options
author | zhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925> | 2010-12-06 22:18:59 +0000 |
---|---|---|
committer | zhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925> | 2010-12-06 22:18:59 +0000 |
commit | 915129ee6fd4d9c5564aafedb238a237592a3d42 (patch) | |
tree | 2995f382edd65f2a7e095a8868d45f22cb60d063 /test | |
parent | b5eb6ed9e27b7bf80a406e4a38ffe42db43889cc (diff) | |
download | googletest-915129ee6fd4d9c5564aafedb238a237592a3d42.tar.gz googletest-915129ee6fd4d9c5564aafedb238a237592a3d42.tar.bz2 googletest-915129ee6fd4d9c5564aafedb238a237592a3d42.zip |
Allows a value-parameterized test fixture to derive from Test and WithParamInterface<T> separately; contributed by Matt Austern.
Diffstat (limited to 'test')
-rw-r--r-- | test/gtest-param-test_test.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/gtest-param-test_test.cc b/test/gtest-param-test_test.cc index c920f4fd..acd269bc 100644 --- a/test/gtest-param-test_test.cc +++ b/test/gtest-param-test_test.cc @@ -836,6 +836,39 @@ INSTANTIATE_TEST_CASE_P(InstantiationWithComments, CommentTest, Values(Unstreamable(1))); +// Verify that we can create a hierarchy of test fixtures, where the base +// class fixture is not parameterized and the derived class is. In this case +// ParameterizedDerivedTest inherits from NonParameterizedBaseTest. We +// perform simple tests on both. +class NonParameterizedBaseTest : public ::testing::Test { + public: + NonParameterizedBaseTest() : n_(17) { } + protected: + int n_; +}; + +class ParameterizedDerivedTest : public NonParameterizedBaseTest, + public ::testing::WithParamInterface<int> { + protected: + ParameterizedDerivedTest() : count_(0) { } + int count_; + static int global_count_; +}; + +int ParameterizedDerivedTest::global_count_ = 0; + +TEST_F(NonParameterizedBaseTest, FixtureIsInitialized) { + EXPECT_EQ(17, n_); +} + +TEST_P(ParameterizedDerivedTest, SeesSequence) { + EXPECT_EQ(17, n_); + EXPECT_EQ(0, count_++); + EXPECT_EQ(GetParam(), global_count_++); +} + +INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5)); + #endif // GTEST_HAS_PARAM_TEST TEST(CompileTest, CombineIsDefinedOnlyWhenGtestHasParamTestIsDefined) { |