googletest/googlemock
Abseil Team a4ab0abb93 Googletest export
Mark ACTION_Pn()-generated functions as must-use-result.

This catches when a client creates an action and discards it, thinking that the action has actually been applied to something.

This will help people who make the mistake of defining, for example, both `void Use(Foo*)` and `ACTION(Use) { Use(arg); }` for later application to a Foo.  With such an overload, a client may then write `Use();`, forgetting the param and being confused why nothing happens.

This also catches when a client defines their own action in terms of an ACTION()-generated one, invokes the ACTION's builder, and then fails to invoke the resulting action, thinking it's operating on the outer action's parameters.

PiperOrigin-RevId: 330614454
2020-09-10 19:09:30 -04:00
..
cmake Ensure that gtest/gmock pkgconfig requirements specify version 2020-03-21 06:38:09 -04:00
docs Merge pull request #2994 from xerus2000:gmock-docs 2020-09-10 19:09:21 -04:00
include/gmock Googletest export 2020-09-10 19:09:30 -04:00
scripts Googletest export 2020-06-26 12:03:55 -04:00
src Googletest export 2020-08-07 13:08:09 -04:00
test Googletest export 2020-08-26 21:23:05 -04: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 #2830 from keshavgbpecdelhi:patch-1 2020-05-05 17:07:05 -04: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 Google Mock's license.

Google Mock is a part of Google Test C++ testing framework and a subject to the same requirements.