googletest/googlemock
Abseil Team 0c400f67fc Googletest export
GMock: Make Truly explain when it fails

I just wrote a test that had a matcher of the form
  Optional(AllOf(
    SomeMatcher,
    SomeOtherMatcher,
    Truly(SomePredicate)))

The predicate failed, the other two matchers succeeded, and I got a hard-to-interpret message saying that the value in the optional "didn't match". Didn't match what?

This change improves situations like that slightly by having Truly explain to its result listener when it fails. When there are multiple Trulys in an AllOf, there will be some ambiguity, but it will at least provide more information than right now.

PiperOrigin-RevId: 341105141
2020-11-09 15:43:24 -05:00
..
cmake Ensure that gtest/gmock pkgconfig requirements specify version 2020-03-21 06:38:09 -04:00
docs Googletest export 2020-11-06 13:23:55 -05:00
include/gmock Googletest export 2020-11-09 15:43:24 -05:00
scripts Googletest export 2020-10-19 14:01:26 -04:00
src Googletest export 2020-08-07 13:08:09 -04:00
test Googletest export 2020-11-09 15:43:24 -05:00
CMakeLists.txt Googletest export 2020-07-15 14:09:29 -04:00
CONTRIBUTORS move googlemock files into googlemock/ subdir 2015-08-25 17:47:18 -04:00
LICENSE move googlemock files into googlemock/ subdir 2015-08-25 17:47:18 -04:00
README.md Merge pull request #3008 from hyukmyeong:update_tutorial 2020-11-02 22:26:39 -05:00

Googletest Mocking (gMock) Framework

Overview

Google's framework for writing and using C++ mock classes. It can help you derive better designs of your system and write better tests.

It is inspired by:

It is designed with C++'s specifics in mind.

gMock:

  • Provides a declarative syntax for defining mocks.
  • Can define partial (hybrid) mocks, which are a cross of real and mock objects.
  • Handles functions of arbitrary types and overloaded functions.
  • Comes with a rich set of matchers for validating function arguments.
  • Uses an intuitive syntax for controlling the behavior of a mock.
  • Does automatic verification of expectations (no record-and-replay needed).
  • Allows arbitrary (partial) ordering constraints on function calls to be expressed.
  • Lets a user extend it by defining new matchers and actions.
  • Does not use exceptions.
  • Is easy to learn and use.

Details and examples can be found here:

Please note that code under scripts/generator/ is from the cppclean project and under the Apache License, which is different from GoogleMock's license.

GoogleMock is a part of GoogleTest C++ testing framework and a subject to the same requirements.