mirror of
https://github.com/google/googletest.git
synced 2025-01-14 16:37:56 +08:00
Use ResultOf()'s result_description when explaining match result.
PiperOrigin-RevId: 439389646 Change-Id: Ie34adcdd2b24378e85962efac53b7bb89ed93803
This commit is contained in:
parent
25dcdc7e8b
commit
3ffa237f0e
@ -2258,7 +2258,11 @@ class ResultOfMatcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool MatchAndExplain(T obj, MatchResultListener* listener) const override {
|
bool MatchAndExplain(T obj, MatchResultListener* listener) const override {
|
||||||
*listener << "which is mapped by the given callable to ";
|
if (result_description_.empty()) {
|
||||||
|
*listener << "which is mapped by the given callable to ";
|
||||||
|
} else {
|
||||||
|
*listener << "whose " << result_description_ << " is ";
|
||||||
|
}
|
||||||
// Cannot pass the return value directly to MatchPrintAndExplain, which
|
// Cannot pass the return value directly to MatchPrintAndExplain, which
|
||||||
// takes a non-const reference as argument.
|
// takes a non-const reference as argument.
|
||||||
// Also, specifying template argument explicitly is needed because T could
|
// Also, specifying template argument explicitly is needed because T could
|
||||||
|
@ -949,6 +949,17 @@ TEST(ResultOfTest, CanExplainMatchResult) {
|
|||||||
Explain(matcher, 36));
|
Explain(matcher, 36));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(ResultOfTest, CanExplainMatchResultWithResultDescription) {
|
||||||
|
Matcher<int> matcher = ResultOf("magic int conversion", &IntFunction, Ge(85));
|
||||||
|
EXPECT_EQ("whose magic int conversion is 90" + OfType("int"),
|
||||||
|
Explain(matcher, 36));
|
||||||
|
|
||||||
|
matcher = ResultOf("magic int conversion", &IntFunction, GreaterThan(85));
|
||||||
|
EXPECT_EQ("whose magic int conversion is 90" + OfType("int") +
|
||||||
|
", which is 5 more than 85",
|
||||||
|
Explain(matcher, 36));
|
||||||
|
}
|
||||||
|
|
||||||
// Tests that ResultOf(f, ...) compiles and works as expected when f(x)
|
// Tests that ResultOf(f, ...) compiles and works as expected when f(x)
|
||||||
// returns a non-reference.
|
// returns a non-reference.
|
||||||
TEST(ResultOfTest, WorksForNonReferenceResults) {
|
TEST(ResultOfTest, WorksForNonReferenceResults) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user