Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Kestrel Collaboration
Kestrel Firmware
googletest
Commits
8a761867
Commit
8a761867
authored
4 years ago
by
Abseil Team
Committed by
CJ Johnson
4 years ago
Browse files
Options
Download
Email Patches
Plain Diff
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
# Advanced googletest Topics
go/gunitadvanced
[TOC]
## Introduction
## Introduction
Now that you have read the
[
googletest Primer
](
primer.md
)
and learned how to
Now that you have read the
[
googletest Primer
](
primer.md
)
and learned how to
...
...
This diff is collapsed.
Click to expand it.
docs/faq.md
View file @
8a761867
# Googletest FAQ
# Googletest FAQ
go/gunitfaq
[TOC]
## Why should test suite names and test names not contain underscore?
## Why should test suite names and test names not contain underscore?
Note: Googletest reserves underscore (
`_`
) for special purpose keywords, such as
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:
...
@@ -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
*
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
`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
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,
use
`abort`
and abort the whole test
or to use
`SetUp()`
instead of a constructor.
executable,
or to use
`SetUp()`
instead of a constructor.
*
If the tear-down operation could throw an exception, you must use
*
If the tear-down operation could throw an exception, you must use
`TearDown()`
as opposed to the destructor, as throwing in a destructor leads
`TearDown()`
as opposed to the destructor, as throwing in a destructor leads
to undefined behavior and usually will kill your program right away. Note
to undefined behavior and usually will kill your program right away. Note
...
...
This diff is collapsed.
Click to expand it.
docs/gmock_cheat_sheet.md
View file @
8a761867
# gMock Cheat Sheet
# gMock Cheat Sheet
go/gmockcheat
[TOC]
<!--#include file="includes/g3_BUILD_rule.md"-->
## Defining a Mock Class
## Defining a Mock Class
### Mocking a Normal Class {#MockClass}
### Mocking a Normal Class {#MockClass}
...
@@ -229,8 +223,6 @@ and the default action will be taken each time.
...
@@ -229,8 +223,6 @@ and the default action will be taken each time.
## Matchers {#MatcherList}
## Matchers {#MatcherList}
go/matchers
A
**matcher**
matches a
*single*
argument. You can use it inside
`ON_CALL()`
or
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:
`EXPECT_CALL()`
, or use it to validate a value directly using two macros:
...
@@ -427,10 +419,6 @@ messages, you can use:
...
@@ -427,10 +419,6 @@ messages, you can use:
|
`WhenDynamicCastTo<T>(m)`
| when
`argument`
is passed through
`dynamic_cast<T>()`
, it matches matcher
`m`
. |
|
`WhenDynamicCastTo<T>(m)`
| when
`argument`
is passed through
`dynamic_cast<T>()`
, it matches matcher
`m`
. |
<!-- mdformat on -->
<!-- mdformat on -->
<!--#include file="includes/g3_proto_matchers.md"-->
<!--#include file="includes/g3_absl_status_matcher.md"-->
### Multi-argument Matchers {#MultiArgMatchers}
### Multi-argument Matchers {#MultiArgMatchers}
Technically, all matchers match a
*single*
value. A "multi-argument" matcher is
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:
...
@@ -470,8 +458,6 @@ You can make a matcher from one or more other matchers:
|
`Not(m)`
|
`argument`
doesn't match matcher
`m`
. |
|
`Not(m)`
|
`argument`
doesn't match matcher
`m`
. |
<!-- mdformat on -->
<!-- mdformat on -->
<!--#include file="includes/g3_useful_matchers_outsidegmock.md"-->
### Adapters for Matchers
### Adapters for Matchers
<!-- mdformat off(no multiline tables) -->
<!-- mdformat off(no multiline tables) -->
...
@@ -615,8 +601,6 @@ value, and `foo` by reference.
...
@@ -615,8 +601,6 @@ value, and `foo` by reference.
**Note:** due to technical reasons, `DoDefault()` cannot be used inside a
**Note:** due to technical reasons, `DoDefault()` cannot be used inside a
composite action - trying to do so will result in a run-time error.
composite action - trying to do so will result in a run-time error.
<!--#include file="includes/g3_stubby_actions.md"-->
### Composite Actions
### Composite Actions
<!-- mdformat off(no multiline tables) -->
<!-- mdformat off(no multiline tables) -->
...
...
This diff is collapsed.
Click to expand it.
docs/gmock_cook_book.md
View file @
8a761867
# gMock Cookbook
# gMock Cookbook
go/gmockcook
You can find recipes for using gMock here. If you haven't yet, please read
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
[
the dummy guide
](
gmock_for_dummies.md
)
first to make sure you understand the
basics.
basics.
...
@@ -11,8 +9,6 @@ recommended to write `using ::testing::Foo;` once in your file before using the
...
@@ -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
name
`Foo`
defined by gMock. We omit such
`using`
statements in this section for
brevity, but you should do it in your own code.
brevity, but you should do it in your own code.
[TOC]
## Creating Mock Classes
## Creating Mock Classes
Mock classes are defined as normal classes, using the
`MOCK_METHOD`
macro to
Mock classes are defined as normal classes, using the
`MOCK_METHOD`
macro to
...
@@ -183,8 +179,7 @@ class MockStack : public StackInterface<Elem> {
...
@@ -183,8 +179,7 @@ class MockStack : public StackInterface<Elem> {
### Mocking Non-virtual Methods {#MockingNonVirtualMethods}
### Mocking Non-virtual Methods {#MockingNonVirtualMethods}
gMock can mock non-virtual functions to be used in Hi-perf dependency
gMock can mock non-virtual functions to be used in Hi-perf dependency injection.
injection.
[
See this
](
http://go/tott/33
)
In this case, instead of sharing a common base class with the real class, your
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
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:
...
@@ -830,7 +825,6 @@ A frequently used matcher is `_`, which matches anything:
```
cpp
```
cpp
EXPECT_CALL
(
foo
,
DoThat
(
_
,
NotNull
()));
EXPECT_CALL
(
foo
,
DoThat
(
_
,
NotNull
()));
```
```
<!--#include file="includes/g3_matching_proto_buffers_cookbook_recipe.md"-->
### Combining Matchers {#CombiningMatchers}
### Combining Matchers {#CombiningMatchers}
...
@@ -1161,8 +1155,6 @@ Note that the predicate function / functor doesn't have to return `bool`. It
...
@@ -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
works as long as the return value can be used as the condition in in statement
`if (condition) ...`
.
`if (condition) ...`
.
<!--#include file="includes/g3_callbacks_as_matchers.md"-->
### Matching Arguments that Are Not Copyable
### Matching Arguments that Are Not Copyable
When you do an
`EXPECT_CALL(mock_obj, Foo(bar))`
, gMock saves away a copy of
When you do an
`EXPECT_CALL(mock_obj, Foo(bar))`
, gMock saves away a copy of
...
@@ -1478,8 +1470,6 @@ mock object and gMock.
...
@@ -1478,8 +1470,6 @@ mock object and gMock.
### Knowing When to Expect {#UseOnCall}
### Knowing When to Expect {#UseOnCall}
(go/use-on-call)
**`ON_CALL`**
is likely the
*single most under-utilized construct*
in gMock.
**`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:
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.
...
@@ -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
If the built-in actions don't suit you, you can use an existing callable
(function,
`std::function`
, method, functor, lambda) as an action.
(function,
`std::function`
, method, functor, lambda) as an action.
<!--#include file="includes/g3_callback_snippet.md"-->
```
cpp
```
cpp
using
::
testing
::
_
;
using
::
testing
::
Invoke
;
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
...
@@ -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
combine
`--gmock_verbose=info`
with
`--gtest_stack_trace_depth=0`
on the test
command line.
command line.
<!--#include file="includes/g3_testing_code_stubby_server.md"-->
### Running Tests in Emacs
### Running Tests in Emacs
If you build and run your tests in Emacs using the
`M-x google-compile`
command
If you build and run your tests in Emacs using the
`M-x google-compile`
command
...
@@ -4312,5 +4298,3 @@ expectations.
...
@@ -4312,5 +4298,3 @@ expectations.
Although `
std::function
` supports unlimited number of arguments, `
MockFunction
`
Although `
std::function
` supports unlimited number of arguments, `
MockFunction
`
implementation is limited to ten. If you ever hit that limit... well, your
implementation is limited to ten. If you ever hit that limit... well, your
callback has bigger problems than being mockable. :-)
callback has bigger problems than being mockable. :-)
<!--#include file="includes/g3_content.md"-->
This diff is collapsed.
Click to expand it.
docs/gmock_faq.md
View file @
8a761867
## Legacy gMock FAQ {#GMockFaq}
## 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?
### 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
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.
...
@@ -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.
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?
### 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
You might want to run your test with
`--gmock_verbose=info`
. This flag lets
...
@@ -128,8 +122,6 @@ using ::testing::_;
...
@@ -128,8 +122,6 @@ using ::testing::_;
.
Times
(
0
);
.
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?
### 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
When gMock detects a failure, it prints relevant information (the mock function
...
...
This diff is collapsed.
Click to expand it.
docs/gmock_for_dummies.md
View file @
8a761867
# gMock for Dummies {#GMockForDummies}
# gMock for Dummies {#GMockForDummies}
go/gmockfordummies
[TOC]
## What Is gMock?
## What Is gMock?
When you write a prototype or test, often it's not feasible or wise to rely on
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
...
@@ -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
readable (a net win in the long run), as you can choose
`FooAdaptor`
to fit your
specific domain much better than
`Foo`
does.
specific domain much better than
`Foo`
does.
<!--#include file="includes/g3_wrap_external_api_snippet.md"-->
## Using Mocks in Tests
## Using Mocks in Tests
Once you have a mock class, using it is easy. The typical work flow is:
Once you have a mock class, using it is easy. The typical work flow is:
...
...
This diff is collapsed.
Click to expand it.
docs/pkgconfig.md
View file @
8a761867
## Using GoogleTest from various build systems
## Using GoogleTest from various build systems
[TOC]
GoogleTest comes with pkg-config files that can be used to determine all
GoogleTest comes with pkg-config files that can be used to determine all
necessary flags for compiling and linking to GoogleTest (and GoogleMock).
necessary flags for compiling and linking to GoogleTest (and GoogleMock).
Pkg-config is a standardised plain-text format containing
Pkg-config is a standardised plain-text format containing
...
...
This diff is collapsed.
Click to expand it.
docs/primer.md
View file @
8a761867
# Googletest Primer
# Googletest Primer
go/gunitprimer
[TOC]
## Introduction: Why googletest?
## Introduction: Why googletest?
*googletest*
helps you write better C++ tests.
*googletest*
helps you write better C++ tests.
...
...
This diff is collapsed.
Click to expand it.
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