diff options
author | zhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925> | 2013-03-12 21:17:22 (GMT) |
---|---|---|
committer | zhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925> | 2013-03-12 21:17:22 (GMT) |
commit | 1edbcbad73e0c711d5aa0f165bad5e9518894375 (patch) | |
tree | e4390e8a41ccad9936210f3a2cf8105214318340 | |
parent | 6b7a167dca7a9007d14fc95a07f4f6e07fec3162 (diff) | |
download | googletest-1edbcbad73e0c711d5aa0f165bad5e9518894375.zip googletest-1edbcbad73e0c711d5aa0f165bad5e9518894375.tar.gz googletest-1edbcbad73e0c711d5aa0f165bad5e9518894375.tar.bz2 |
Prints a useful message when GetParam() is called in a non-parameterized test.
-rw-r--r-- | include/gtest/gtest.h | 7 | ||||
-rw-r--r-- | test/gtest-param-test_test.cc | 7 |
2 files changed, 13 insertions, 1 deletions
diff --git a/include/gtest/gtest.h b/include/gtest/gtest.h index 6d13ff6..e2f9a99 100644 --- a/include/gtest/gtest.h +++ b/include/gtest/gtest.h @@ -1755,7 +1755,12 @@ class WithParamInterface { // references static data, to reduce the opportunity for incorrect uses // like writing 'WithParamInterface<bool>::GetParam()' for a test that // uses a fixture whose parameter type is int. - const ParamType& GetParam() const { return *parameter_; } + const ParamType& GetParam() const { + GTEST_CHECK_(parameter_ != NULL) + << "GetParam() can only be called inside a value-parameterized test " + << "-- did you intend to write TEST_P instead of TEST_F?"; + return *parameter_; + } private: // Sets parameter value. The caller is responsible for making sure the value diff --git a/test/gtest-param-test_test.cc b/test/gtest-param-test_test.cc index 7b6f7e2..f60cb8a 100644 --- a/test/gtest-param-test_test.cc +++ b/test/gtest-param-test_test.cc @@ -865,6 +865,13 @@ TEST_P(ParameterizedDerivedTest, SeesSequence) { EXPECT_EQ(GetParam(), global_count_++); } +class ParameterizedDeathTest : public ::testing::TestWithParam<int> { }; + +TEST_F(ParameterizedDeathTest, GetParamDiesFromTestF) { + EXPECT_DEATH_IF_SUPPORTED(GetParam(), + ".* value-parameterized test .*"); +} + INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5)); #endif // GTEST_HAS_PARAM_TEST |