Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
8a761867
Commit
8a761867
authored
Jan 25, 2021
by
Abseil Team
Committed by
CJ Johnson
Jan 26, 2021
Browse files
Googletest export
Delete internal tags from docs PiperOrigin-RevId: 353769887
parent
3351eba0
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
3 additions
and
63 deletions
+3
-63
docs/advanced.md
docs/advanced.md
+0
-4
docs/faq.md
docs/faq.md
+2
-6
docs/gmock_cheat_sheet.md
docs/gmock_cheat_sheet.md
+0
-16
docs/gmock_cook_book.md
docs/gmock_cook_book.md
+1
-17
docs/gmock_faq.md
docs/gmock_faq.md
+0
-8
docs/gmock_for_dummies.md
docs/gmock_for_dummies.md
+0
-6
docs/pkgconfig.md
docs/pkgconfig.md
+0
-2
docs/primer.md
docs/primer.md
+0
-4
No files found.
docs/advanced.md
View file @
8a761867
# Advanced googletest Topics
go/gunitadvanced
[TOC]
## Introduction
Now that you have read the
[
googletest Primer
](
primer.md
)
and learned how to
...
...
docs/faq.md
View file @
8a761867
# Googletest FAQ
go/gunitfaq
[TOC]
## Why should test suite names and test names not contain underscore?
Note: Googletest reserves underscore (
`_`
) for special purpose keywords, such as
...
...
@@ -350,8 +346,8 @@ You may still want to use `SetUp()/TearDown()` in the following cases:
*
In the body of a constructor (or destructor), it's not possible to use the
`ASSERT_xx`
macros. Therefore, if the set-up operation could cause a fatal
test failure that should prevent the test from running, it's necessary to
use
`abort`
(in google3, use
`CHECK`
)
and abort the whole test
executable,
or to use
`SetUp()`
instead of a constructor.
use
`abort`
and abort the whole test
executable,
or to use
`SetUp()`
instead of a constructor.
*
If the tear-down operation could throw an exception, you must use
`TearDown()`
as opposed to the destructor, as throwing in a destructor leads
to undefined behavior and usually will kill your program right away. Note
...
...
docs/gmock_cheat_sheet.md
View file @
8a761867
# gMock Cheat Sheet
go/gmockcheat
[TOC]
<!--#include file="includes/g3_BUILD_rule.md"-->
## Defining a Mock Class
### Mocking a Normal Class {#MockClass}
...
...
@@ -229,8 +223,6 @@ and the default action will be taken each time.
## Matchers {#MatcherList}
go/matchers
A
**matcher**
matches a
*single*
argument. You can use it inside
`ON_CALL()`
or
`EXPECT_CALL()`
, or use it to validate a value directly using two macros:
...
...
@@ -427,10 +419,6 @@ messages, you can use:
|
`WhenDynamicCastTo<T>(m)`
| when
`argument`
is passed through
`dynamic_cast<T>()`
, it matches matcher
`m`
. |
<!-- mdformat on -->
<!--#include file="includes/g3_proto_matchers.md"-->
<!--#include file="includes/g3_absl_status_matcher.md"-->
### Multi-argument Matchers {#MultiArgMatchers}
Technically, all matchers match a
*single*
value. A "multi-argument" matcher is
...
...
@@ -470,8 +458,6 @@ You can make a matcher from one or more other matchers:
|
`Not(m)`
|
`argument`
doesn't match matcher
`m`
. |
<!-- mdformat on -->
<!--#include file="includes/g3_useful_matchers_outsidegmock.md"-->
### Adapters for Matchers
<!-- mdformat off(no multiline tables) -->
...
...
@@ -615,8 +601,6 @@ value, and `foo` by reference.
**Note:** due to technical reasons, `DoDefault()` cannot be used inside a
composite action - trying to do so will result in a run-time error.
<!--#include file="includes/g3_stubby_actions.md"-->
### Composite Actions
<!-- mdformat off(no multiline tables) -->
...
...
docs/gmock_cook_book.md
View file @
8a761867
# gMock Cookbook
go/gmockcook
You can find recipes for using gMock here. If you haven't yet, please read
[
the dummy guide
](
gmock_for_dummies.md
)
first to make sure you understand the
basics.
...
...
@@ -11,8 +9,6 @@ recommended to write `using ::testing::Foo;` once in your file before using the
name
`Foo`
defined by gMock. We omit such
`using`
statements in this section for
brevity, but you should do it in your own code.
[TOC]
## Creating Mock Classes
Mock classes are defined as normal classes, using the
`MOCK_METHOD`
macro to
...
...
@@ -183,8 +179,7 @@ class MockStack : public StackInterface<Elem> {
### Mocking Non-virtual Methods {#MockingNonVirtualMethods}
gMock can mock non-virtual functions to be used in Hi-perf dependency
injection.
[
See this
](
http://go/tott/33
)
gMock can mock non-virtual functions to be used in Hi-perf dependency injection.
In this case, instead of sharing a common base class with the real class, your
mock class will be
*unrelated*
to the real class, but contain methods with the
...
...
@@ -830,7 +825,6 @@ A frequently used matcher is `_`, which matches anything:
```
cpp
EXPECT_CALL
(
foo
,
DoThat
(
_
,
NotNull
()));
```
<!--#include file="includes/g3_matching_proto_buffers_cookbook_recipe.md"-->
### Combining Matchers {#CombiningMatchers}
...
...
@@ -1161,8 +1155,6 @@ Note that the predicate function / functor doesn't have to return `bool`. It
works as long as the return value can be used as the condition in in statement
`if (condition) ...`
.
<!--#include file="includes/g3_callbacks_as_matchers.md"-->
### Matching Arguments that Are Not Copyable
When you do an
`EXPECT_CALL(mock_obj, Foo(bar))`
, gMock saves away a copy of
...
...
@@ -1478,8 +1470,6 @@ mock object and gMock.
### Knowing When to Expect {#UseOnCall}
(go/use-on-call)
**`ON_CALL`**
is likely the
*single most under-utilized construct*
in gMock.
There are basically two constructs for defining the behavior of a mock object:
...
...
@@ -2171,8 +2161,6 @@ own precedence order distinct from the `ON_CALL` precedence order.
If the built-in actions don't suit you, you can use an existing callable
(function,
`std::function`
, method, functor, lambda) as an action.
<!--#include file="includes/g3_callback_snippet.md"-->
```
cpp
using
::
testing
::
_
;
using
::
testing
::
Invoke
;
...
...
@@ -3266,8 +3254,6 @@ If you are interested in the mock call trace but not the stack traces, you can
combine
`--gmock_verbose=info`
with
`--gtest_stack_trace_depth=0`
on the test
command line.
<!--#include file="includes/g3_testing_code_stubby_server.md"-->
### Running Tests in Emacs
If you build and run your tests in Emacs using the
`M-x google-compile`
command
...
...
@@ -4312,5 +4298,3 @@ expectations.
Although `
std::function
` supports unlimited number of arguments, `
MockFunction
`
implementation is limited to ten. If you ever hit that limit... well, your
callback has bigger problems than being mockable. :-)
<!--#include file="includes/g3_content.md"-->
docs/gmock_faq.md
View file @
8a761867
## Legacy gMock FAQ {#GMockFaq}
go/gmockfaq
[TOC]
### When I call a method on my mock object, the method for the real object is invoked instead. What's the problem?
In order for a method to be mocked, it must be
*virtual*
, unless you use the
...
...
@@ -83,8 +79,6 @@ void Bar(int* p); // Neither p nor *p is const.
void
Bar
(
const
int
*
p
);
// p is not const, but *p is.
```
<!--#include file="includes/g3_mock_multithreaded.md"-->
### I can't figure out why gMock thinks my expectations are not satisfied. What should I do?
You might want to run your test with
`--gmock_verbose=info`
. This flag lets
...
...
@@ -128,8 +122,6 @@ using ::testing::_;
.
Times
(
0
);
```
<!--#include file="includes/g3_mock_a_stubby_server.md"-->
### I have a failed test where gMock tells me TWICE that a particular expectation is not satisfied. Isn't this redundant?
When gMock detects a failure, it prints relevant information (the mock function
...
...
docs/gmock_for_dummies.md
View file @
8a761867
# gMock for Dummies {#GMockForDummies}
go/gmockfordummies
[TOC]
## What Is gMock?
When you write a prototype or test, often it's not feasible or wise to rely on
...
...
@@ -208,8 +204,6 @@ choosing the adaptor interface can make your code easier to write and more
readable (a net win in the long run), as you can choose
`FooAdaptor`
to fit your
specific domain much better than
`Foo`
does.
<!--#include file="includes/g3_wrap_external_api_snippet.md"-->
## Using Mocks in Tests
Once you have a mock class, using it is easy. The typical work flow is:
...
...
docs/pkgconfig.md
View file @
8a761867
## Using GoogleTest from various build systems
[TOC]
GoogleTest comes with pkg-config files that can be used to determine all
necessary flags for compiling and linking to GoogleTest (and GoogleMock).
Pkg-config is a standardised plain-text format containing
...
...
docs/primer.md
View file @
8a761867
# Googletest Primer
go/gunitprimer
[TOC]
## Introduction: Why googletest?
*googletest*
helps you write better C++ tests.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment