googletest/googlemock
Abseil Team a09ea700d3 Googletest export
Fix `-Wgnu-zero-variadic-macro-arguments` in GMock

Passing zero arguments to the variadic part of a macro is a GNU
extension and triggers warnings when build projects using GMock with
`-pedantic`.

 - Fix uses of `GMOCK_PP_INTERNAL_16TH` to always receive at least 17
arguments. (this was triggered when `GMOCK_PP_NARG` or `GMOCK_PP_HAS_COMMA`
were used with an argument containing no commas).
 - Fix `GMOCK_PP_HEAD` to append a dummy unused argument so that
`GMOCK_PP_INTERNAL_HEAD` always has two arguments.

PiperOrigin-RevId: 310414611
2020-05-07 16:15:58 -04:00
..
cmake Ensure that gtest/gmock pkgconfig requirements specify version 2020-03-21 06:38:09 -04:00
docs Googletest export 2020-05-01 17:12:19 -04:00
include/gmock Googletest export 2020-05-07 16:15:58 -04:00
scripts Googletest export 2020-02-11 15:50:18 -05:00
src Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_. 2020-04-23 22:22:07 -04:00
test Merge pull request #2815 from Quuxplusone:simple 2020-05-01 17:11:43 -04:00
CMakeLists.txt Googletest export 2020-02-07 13:35:27 -05: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.