Welcome to Google C++ Mocking Framework!
Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s specifics in mind, Google C++ Mocking Framework (or Google Mock for short) is a library for writing and using C++ mock classes. Google Mock:
- lets you create mock classes trivially using simple macros,
- supports a rich set of matchers and actions,
- handles unordered, partially ordered, or completely ordered expectations,
- is extensible by users, and
- works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and Symbian.
We hope you find it useful!
Who are using Google Mock?
We have enjoyed using Google Mock in many projects at Google. Outside of Google, the most notable client is probably the Chromium projects (behind the Chrome browser and Chrome OS). If you know of a project that's using Google Mock and want it to be listed here, please let
googlemock@googlegroups.com
know.
System Requirements
Google Mock is not a testing framework itself. Instead, it needs a testing framework for writing tests. Google Mock works seamlessly with Google Test. It comes with a copy of Google Test bundled. Starting with version 1.1.0, you can also use it with any C++ testing framework of your choice.
Google Mock has been tested with gcc 4.0+ and Microsoft Visual C++ 8.0 SP1. Users reported that it also works with gcc 3.4, Microsoft Visual C++ 7.1, and Cygwin, although we haven't tested it there ourselves.
Getting Started
If you are new to the project, we suggest to read the user documentation in the following order:
- Learn the basics of Google Test, if you choose to use Google Mock with it (recommended).
- Read Google Mock for Dummies.
- Read the instructions on how to build Google Mock.
You can also watch Zhanyong's talk on Google Mock's usage and implementation.
Once you understand the basics, check out the rest of the docs:
- CheatSheet - all the commonly used stuff at a glance.
- CookBook - recipes for getting things done, including advanced techniques.
If you need help, please check the KnownIssues and FrequentlyAskedQuestions before posting a question on the googlemock discussion group.
We'd love to have your help! Please read the DevGuide if you are willing to contribute to the development.
Happy mocking!
Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation.
Getting Started
After downloading Google Test, unpack it, read the README file and the documentation wiki pages (listed on the right side of this front page).
Who Is Using Google Test?
In addition to many internal projects at Google, Google Test is also used by the following notable projects:
- The Chromium projects (behind the Chrome browser and Chrome OS)
- The LLVM compiler
- Protocol Buffers (Google's data interchange format)
- The OpenCV computer vision library
If you know of a project that's using Google Test and want it to be listed here, please let
googletestframework@googlegroups.com
know.
Google Test-related open source projects
Google Test UI is test runner that runs your test binary, allows you to track its progress via a progress bar, and displays a list of test failures. Clicking on one shows failure text. Google Test UI is written in C#.
GTest TAP Listener is an event listener for Google Test that implements the TAP protocol for test result output. If your test runner understands TAP, you may find it useful.