diff --git a/googlemock/include/gmock/gmock-matchers.h b/googlemock/include/gmock/gmock-matchers.h index cc045648c..708c7c870 100644 --- a/googlemock/include/gmock/gmock-matchers.h +++ b/googlemock/include/gmock/gmock-matchers.h @@ -4812,7 +4812,8 @@ class ExceptionMatcherImpl { // // EXPECT_THAT( // []() { throw std::runtime_error("message"); }, -// Throws +// Throws( +// Property(&std::runtime_error::what, HasSubstr("message")))); template PolymorphicMatcher> diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc index dd61a5391..074118738 100644 --- a/googlemock/test/gmock-matchers_test.cc +++ b/googlemock/test/gmock-matchers_test.cc @@ -8119,6 +8119,26 @@ TEST(MatcherPMacroTest, WorksOnMoveOnlyType) { #if GTEST_HAS_EXCEPTIONS +// Test that examples from documentation compile +TEST(ThrowsTest, Examples) { + EXPECT_THAT( + []() { throw std::runtime_error("message"); }, + Throws()); + + EXPECT_THAT( + []() { throw std::runtime_error("message"); }, + ThrowsMessage(HasSubstr("message"))); + + EXPECT_THAT( + []() { throw std::runtime_error("message"); }, + ThrowsMessageHasSubstr("message")); + + EXPECT_THAT( + []() { throw std::runtime_error("message"); }, + Throws( + Property(&std::runtime_error::what, HasSubstr("message")))); +} + TEST(ThrowsTest, Describe) { Matcher matcher = Throws(); std::stringstream ss;