xref: /aosp_15_r20/external/googletest/googlemock/README.md (revision 481dde660366d6f317d242b6974ef1b20adb843c)
1*481dde66SAndroid Build Coastguard Worker# Googletest Mocking (gMock) Framework
2*481dde66SAndroid Build Coastguard Worker
3*481dde66SAndroid Build Coastguard Worker### Overview
4*481dde66SAndroid Build Coastguard Worker
5*481dde66SAndroid Build Coastguard WorkerGoogle's framework for writing and using C++ mock classes. It can help you
6*481dde66SAndroid Build Coastguard Workerderive better designs of your system and write better tests.
7*481dde66SAndroid Build Coastguard Worker
8*481dde66SAndroid Build Coastguard WorkerIt is inspired by:
9*481dde66SAndroid Build Coastguard Worker
10*481dde66SAndroid Build Coastguard Worker*   [jMock](http://www.jmock.org/)
11*481dde66SAndroid Build Coastguard Worker*   [EasyMock](https://easymock.org/)
12*481dde66SAndroid Build Coastguard Worker*   [Hamcrest](https://code.google.com/p/hamcrest/)
13*481dde66SAndroid Build Coastguard Worker
14*481dde66SAndroid Build Coastguard WorkerIt is designed with C++'s specifics in mind.
15*481dde66SAndroid Build Coastguard Worker
16*481dde66SAndroid Build Coastguard WorkergMock:
17*481dde66SAndroid Build Coastguard Worker
18*481dde66SAndroid Build Coastguard Worker-   Provides a declarative syntax for defining mocks.
19*481dde66SAndroid Build Coastguard Worker-   Can define partial (hybrid) mocks, which are a cross of real and mock
20*481dde66SAndroid Build Coastguard Worker    objects.
21*481dde66SAndroid Build Coastguard Worker-   Handles functions of arbitrary types and overloaded functions.
22*481dde66SAndroid Build Coastguard Worker-   Comes with a rich set of matchers for validating function arguments.
23*481dde66SAndroid Build Coastguard Worker-   Uses an intuitive syntax for controlling the behavior of a mock.
24*481dde66SAndroid Build Coastguard Worker-   Does automatic verification of expectations (no record-and-replay needed).
25*481dde66SAndroid Build Coastguard Worker-   Allows arbitrary (partial) ordering constraints on function calls to be
26*481dde66SAndroid Build Coastguard Worker    expressed.
27*481dde66SAndroid Build Coastguard Worker-   Lets a user extend it by defining new matchers and actions.
28*481dde66SAndroid Build Coastguard Worker-   Does not use exceptions.
29*481dde66SAndroid Build Coastguard Worker-   Is easy to learn and use.
30*481dde66SAndroid Build Coastguard Worker
31*481dde66SAndroid Build Coastguard WorkerDetails and examples can be found here:
32*481dde66SAndroid Build Coastguard Worker
33*481dde66SAndroid Build Coastguard Worker*   [gMock for Dummies](https://google.github.io/googletest/gmock_for_dummies.html)
34*481dde66SAndroid Build Coastguard Worker*   [Legacy gMock FAQ](https://google.github.io/googletest/gmock_faq.html)
35*481dde66SAndroid Build Coastguard Worker*   [gMock Cookbook](https://google.github.io/googletest/gmock_cook_book.html)
36*481dde66SAndroid Build Coastguard Worker*   [gMock Cheat Sheet](https://google.github.io/googletest/gmock_cheat_sheet.html)
37*481dde66SAndroid Build Coastguard Worker
38*481dde66SAndroid Build Coastguard WorkerGoogleMock is a part of
39*481dde66SAndroid Build Coastguard Worker[GoogleTest C++ testing framework](https://github.com/google/googletest/) and a
40*481dde66SAndroid Build Coastguard Workersubject to the same requirements.
41