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
1a5a78b9
Commit
1a5a78b9
authored
Feb 11, 2021
by
Abseil Team
Committed by
Derek Mauro
Feb 18, 2021
Browse files
Googletest export
Add files for GitHub Pages PiperOrigin-RevId: 357096486
parent
9e2c7ab0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
11 deletions
+14
-11
docs/faq.md
docs/faq.md
+5
-6
docs/gmock_cook_book.md
docs/gmock_cook_book.md
+8
-4
docs/pkgconfig.md
docs/pkgconfig.md
+1
-1
No files found.
docs/faq.md
View file @
1a5a78b9
...
@@ -580,8 +580,6 @@ TEST(MyDeathTest, CompoundStatement) {
...
@@ -580,8 +580,6 @@ TEST(MyDeathTest, CompoundStatement) {
}
}
```
```
gtest-death-test_test.cc contains more examples if you are interested.
## I have a fixture class `FooTest`, but `TEST_F(FooTest, Bar)` gives me error ``"no matching function for call to `FooTest::FooTest()'"``. Why?
## I have a fixture class `FooTest`, but `TEST_F(FooTest, Bar)` gives me error ``"no matching function for call to `FooTest::FooTest()'"``. Why?
Googletest needs to be able to create objects of your test fixture class, so it
Googletest needs to be able to create objects of your test fixture class, so it
...
@@ -663,14 +661,15 @@ break the death test (e.g. by changing the regex pattern it is expected to
...
@@ -663,14 +661,15 @@ break the death test (e.g. by changing the regex pattern it is expected to
match). Admittedly, this is a hack. We'll consider a more permanent solution
match). Admittedly, this is a hack. We'll consider a more permanent solution
after the fork-and-exec-style death tests are implemented.
after the fork-and-exec-style death tests are implemented.
## The compiler complains about
"
no match for 'operator<<'
"
when I use an assertion. What gives?
## The compiler complains about
`
no match for 'operator<<'
`
when I use an assertion. What gives?
If you use a user-defined type
`FooType`
in an assertion, you must make sure
If you use a user-defined type
`FooType`
in an assertion, you must make sure
there is an
`std::ostream& operator<<(std::ostream&, const FooType&)`
function
there is an
`std::ostream& operator<<(std::ostream&, const FooType&)`
function
defined such that we can print a value of
`FooType`
.
defined such that we can print a value of
`FooType`
.
In addition, if
`FooType`
is declared in a name space, the
`<<`
operator also
In addition, if
`FooType`
is declared in a name space, the
`<<`
operator also
needs to be defined in the
*same*
name space. See abseil.io/tips/49 for details.
needs to be defined in the
*same*
name space. See
[
Tip of the Week #49
](
http://abseil.io/tips/49
)
for details.
## How do I suppress the memory leak messages on Windows?
## How do I suppress the memory leak messages on Windows?
...
@@ -691,10 +690,10 @@ mistake in production. Such cleverness also leads to
...
@@ -691,10 +690,10 @@ mistake in production. Such cleverness also leads to
advise against the practice, and googletest doesn't provide a way to do it.
advise against the practice, and googletest doesn't provide a way to do it.
In general, the recommended way to cause the code to behave differently under
In general, the recommended way to cause the code to behave differently under
test is
[
Dependency Injection
](
http
s
://en.wikipedia.org/wiki/Dependency_injection
)
. You can inject
test is
[
Dependency Injection
](
http://en.wikipedia.org/wiki/Dependency_injection
)
. You can inject
different functionality from the test and from the production code. Since your
different functionality from the test and from the production code. Since your
production code doesn't link in the for-test logic at all (the
production code doesn't link in the for-test logic at all (the
[
`testonly`
](
http
s
://docs.bazel.build/versions/master/be/common-definitions.html#common.testonly
)
attribute for BUILD targets helps to ensure
[
`testonly`
](
http://docs.bazel.build/versions/master/be/common-definitions.html#common.testonly
)
attribute for BUILD targets helps to ensure
that), there is no danger in accidentally running it.
that), there is no danger in accidentally running it.
However, if you
*really*
,
*really*
,
*really*
have no choice, and if you follow
However, if you
*really*
,
*really*
,
*really*
have no choice, and if you follow
...
...
docs/gmock_cook_book.md
View file @
1a5a78b9
...
@@ -1452,6 +1452,8 @@ using ::testing::ElementsAreArray;
...
@@ -1452,6 +1452,8 @@ using ::testing::ElementsAreArray;
Use
`Pair`
when comparing maps or other associative containers.
Use
`Pair`
when comparing maps or other associative containers.
{% raw %}
```
cpp
```
cpp
using
testing
::
ElementsAre
;
using
testing
::
ElementsAre
;
using
testing
::
Pair
;
using
testing
::
Pair
;
...
@@ -1460,6 +1462,8 @@ using testing::Pair;
...
@@ -1460,6 +1462,8 @@ using testing::Pair;
EXPECT_THAT
(
m
,
ElementsAre
(
Pair
(
"a"
,
1
),
Pair
(
"b"
,
2
),
Pair
(
"c"
,
3
)));
EXPECT_THAT
(
m
,
ElementsAre
(
Pair
(
"a"
,
1
),
Pair
(
"b"
,
2
),
Pair
(
"c"
,
3
)));
```
```
{% endraw %}
**Tips:**
**Tips:**
*
`ElementsAre*()`
can be used to match
*any*
container that implements the
*
`ElementsAre*()`
can be used to match
*any*
container that implements the
...
@@ -2244,7 +2248,7 @@ former, and the former's return type can be implicitly converted to that of the
...
@@ -2244,7 +2248,7 @@ former, and the former's return type can be implicitly converted to that of the
latter. So, you can invoke something whose type is
*not*
exactly the same as the
latter. So, you can invoke something whose type is
*not*
exactly the same as the
mock function, as long as it's safe to do so - nice, huh?
mock function, as long as it's safe to do so - nice, huh?
**`
Note
:`{.escaped}**
Note
that:
*
The action takes ownership of the callback and will delete it when the
*
The action takes ownership of the callback and will delete it when the
action itself is destructed.
action itself is destructed.
...
@@ -2330,7 +2334,7 @@ bool Job2(int n, char c) { ... }
...
@@ -2330,7 +2334,7 @@ bool Job2(int n, char c) { ... }
foo
.
ComplexJob
(
20
);
// Invokes Job2(5, 'a').
foo
.
ComplexJob
(
20
);
// Invokes Job2(5, 'a').
```
```
**`
Note
:`{.escaped}**
Note
that:
*
The action takes ownership of the callback and will delete it when the
*
The action takes ownership of the callback and will delete it when the
action itself is destructed.
action itself is destructed.
...
@@ -2875,8 +2879,8 @@ work with non-copyable objects; you'll have to use functors instead.
...
@@ -2875,8 +2879,8 @@ work with non-copyable objects; you'll have to use functors instead.
#### Legacy workarounds for move-only types {#LegacyMoveOnly}
#### Legacy workarounds for move-only types {#LegacyMoveOnly}
Support for move-only function arguments was only introduced to gMock in April
Support for move-only function arguments was only introduced to gMock in April
2017.
In older code, you may encounter the following workaround for the lack
of
of
2017. In older code, you may encounter the following workaround for the lack
this feature (it is no longer necessary - we're including it just for
of
this feature (it is no longer necessary - we're including it just for
reference):
reference):
```
cpp
```
cpp
...
...
docs/pkgconfig.md
View file @
1a5a78b9
...
@@ -145,4 +145,4 @@ $ pkg-config --libs gtest
...
@@ -145,4 +145,4 @@ $ pkg-config --libs gtest
which contains the correct sysroot now. For a more comprehensive guide to also
which contains the correct sysroot now. For a more comprehensive guide to also
including
`${CHOST}`
in build system calls, see the excellent tutorial by Diego
including
`${CHOST}`
in build system calls, see the excellent tutorial by Diego
Elio Pettenò: https://autotools.io/pkgconfig/cross-compiling.html
Elio Pettenò:
<
https://autotools.io/pkgconfig/cross-compiling.html
>
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