README.md 3.82 KB
Newer Older
1

Billy Donahue's avatar
Billy Donahue committed
2
Welcome to **Google Test**, Google's C++ test framework!
3

Billy Donahue's avatar
Billy Donahue committed
4
5
This GitHub repository is a merger of the formerly separate GoogleTest and GoogleMock projects.
These were so closely related that it makes sense to maintain and release them together.
6

Billy Donahue's avatar
Billy Donahue committed
7
## GoogleTest ##
8

Billy Donahue's avatar
Billy Donahue committed
9
10
11
12
13
Based on the [XUnit](https://en.wikipedia.org/wiki/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.
14

Billy Donahue's avatar
Billy Donahue committed
15
## Platforms ##
16

Billy Donahue's avatar
Billy Donahue committed
17
Google test has been used on a variety of platforms:
18

Billy Donahue's avatar
Billy Donahue committed
19
20
21
22
23
24
25
  * Linux
  * Mac OS X
  * Windows
  * Cygwin
  * MinGW
  * Windows Mobile
  * Symbian
26

Billy Donahue's avatar
Billy Donahue committed
27
## Who Is Using Google Test? ##
28

Billy Donahue's avatar
Billy Donahue committed
29
30
In addition to many internal projects at Google, Google Test is also used by
the following notable projects:
31

Billy Donahue's avatar
Billy Donahue committed
32
33
34
35
  * The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser and Chrome OS)
  * The [LLVM](http://llvm.org/) compiler
  * [Protocol Buffers](http://code.google.com/p/protobuf/) (Google's data interchange format)
  * The [OpenCV](http://opencv.org/) computer vision library
36

Billy Donahue's avatar
Billy Donahue committed
37
## Google Test-related open source projects ##
38

Billy Donahue's avatar
Billy Donahue committed
39
40
41
42
[Google Test UI](http://code.google.com/p/gtest-gbar/) 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#.
43

Billy Donahue's avatar
Billy Donahue committed
44
45
46
47
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
listener for Google Test that implements the
[TAP protocol](http://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
result output. If your test runner understands TAP, you may find it useful.
48

Billy Donahue's avatar
Billy Donahue committed
49
## About Google Mock ##
50

Billy Donahue's avatar
Billy Donahue committed
51
52
53
**Google Mock** is an extension to Google Test for writing and using C++ mock classes.
It is inspired by [jMock](http://www.jmock.org/), [EasyMock](http://www.easymock.org/),
and [Hamcrest](http://code.google.com/p/hamcrest/), and designed with C++'s specifics in mind.
54

Billy Donahue's avatar
Billy Donahue committed
55
Google mock:
56

Billy Donahue's avatar
Billy Donahue committed
57
58
59
60
  * 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.
61

Billy Donahue's avatar
Billy Donahue committed
62
We hope you find it useful!
63

Billy Donahue's avatar
Billy Donahue committed
64
## Using Google Mock Without Google Test ##
Billy Donahue's avatar
Billy Donahue committed
65
66
67
68
Google Mock is not a testing framework itself.  Instead, it needs a
testing framework for writing tests.  Google Mock works seamlessly
with [Google Test](http://code.google.com/p/googletest/), butj
you can also use it with [any C++ testing framework](googlemock/ForDummies.md#Using_Google_Mock_with_Any_Testing_Framework).
69
70
71

## Getting Started ##

Billy Donahue's avatar
Billy Donahue committed
72
73
If you are new to the project, we suggest that you read the user
documentation in the following order:
74

Billy Donahue's avatar
Billy Donahue committed
75
76
77
  * Learn the [basics](http://code.google.com/p/googletest/wiki/Primer) of Google Test, if you choose to use Google Mock with it (recommended).
  * Read [Google Mock for Dummies](ForDummies.md).
  * Read the instructions on how to [build Google Mock](http://code.google.com/p/googlemock/source/browse/trunk/README).
78

Billy Donahue's avatar
Billy Donahue committed
79
You can also watch Zhanyong's [talk](http://www.youtube.com/watch?v=sYpCyLI47rM) on Google Mock's usage and implementation.
80

Billy Donahue's avatar
Billy Donahue committed
81
Once you understand the basics, check out the rest of the docs:
82

Billy Donahue's avatar
Billy Donahue committed
83
84
  * [CheatSheet](googlemock/docs/CheatSheet.md) - all the commonly used stuff at a glance.
  * [CookBook](googlemock/docs/CookBook.md) - recipes for getting things done, including advanced techniques.
85

Billy Donahue's avatar
Billy Donahue committed
86
87
88
If you need help, please check the [KnownIssues](googlemock/docs/KnownIssues.md) and
[FrequentlyAskedQuestions](googlemock/docs/frequentlyaskedquestions.md) before
posting a question on the [googlemock discussion group](http://groups.google.com/group/googlemock).
89

Billy Donahue's avatar
Billy Donahue committed
90
We'd love to have your help! Please read the Developer Guides if you are willing to contribute to the development.
91

Billy Donahue's avatar
Billy Donahue committed
92
Happy mocking!