Googletest export

Clean up heading levels and mention `::testing` namespace in Matchers Reference

PiperOrigin-RevId: 373242122
This commit is contained in:
Abseil Team 2021-05-11 18:09:03 -04:00 committed by CJ Johnson
parent 5cfc63ddd5
commit 97f96cbc8a

View File

@ -17,16 +17,17 @@ expected_value)`.
Built-in matchers (where `argument` is the function argument, e.g. Built-in matchers (where `argument` is the function argument, e.g.
`actual_value` in the example above, or when used in the context of `actual_value` in the example above, or when used in the context of
`EXPECT_CALL(mock_object, method(matchers))`, the arguments of `method`) are `EXPECT_CALL(mock_object, method(matchers))`, the arguments of `method`) are
divided into several categories: divided into several categories. All matchers are defined in the `::testing`
namespace unless otherwise noted.
### Wildcard ## Wildcard
Matcher | Description Matcher | Description
:-------------------------- | :----------------------------------------------- :-------------------------- | :-----------------------------------------------
`_` | `argument` can be any value of the correct type. `_` | `argument` can be any value of the correct type.
`A<type>()` or `An<type>()` | `argument` can be any value of type `type`. `A<type>()` or `An<type>()` | `argument` can be any value of type `type`.
### Generic Comparison ## Generic Comparison
| Matcher | Description | | Matcher | Description |
| :--------------------- | :-------------------------------------------------- | | :--------------------- | :-------------------------------------------------- |
@ -57,7 +58,7 @@ that can be explicitly converted to Boolean, but are not implicitly converted to
Boolean. In other cases, you can use the basic Boolean. In other cases, you can use the basic
[`EXPECT_TRUE` and `EXPECT_FALSE`](../primer.md#basic-assertions) assertions. [`EXPECT_TRUE` and `EXPECT_FALSE`](../primer.md#basic-assertions) assertions.
### Floating-Point Matchers {#FpMatchers} ## Floating-Point Matchers {#FpMatchers}
| Matcher | Description | | Matcher | Description |
| :------------------------------- | :--------------------------------- | | :------------------------------- | :--------------------------------- |
@ -81,7 +82,7 @@ user wants.
| `NanSensitiveDoubleNear(a_double, max_abs_error)` | `argument` is a `double` value close to `a_double` (absolute error <= `max_abs_error`), treating two NaNs as equal. | | `NanSensitiveDoubleNear(a_double, max_abs_error)` | `argument` is a `double` value close to `a_double` (absolute error <= `max_abs_error`), treating two NaNs as equal. |
| `NanSensitiveFloatNear(a_float, max_abs_error)` | `argument` is a `float` value close to `a_float` (absolute error <= `max_abs_error`), treating two NaNs as equal. | | `NanSensitiveFloatNear(a_float, max_abs_error)` | `argument` is a `float` value close to `a_float` (absolute error <= `max_abs_error`), treating two NaNs as equal. |
### String Matchers ## String Matchers
The `argument` can be either a C string or a C++ string object: The `argument` can be either a C string or a C++ string object:
@ -103,7 +104,7 @@ use the regular expression syntax defined
[here](../advanced.md#regular-expression-syntax). All of these matchers, except [here](../advanced.md#regular-expression-syntax). All of these matchers, except
`ContainsRegex()` and `MatchesRegex()` work for wide strings as well. `ContainsRegex()` and `MatchesRegex()` work for wide strings as well.
### Container Matchers ## Container Matchers
Most STL-style containers support `==`, so you can use `Eq(expected_container)` Most STL-style containers support `==`, so you can use `Eq(expected_container)`
or simply `expected_container` to match a container exactly. If you want to or simply `expected_container` to match a container exactly. If you want to
@ -153,7 +154,7 @@ messages, you can use:
EXPECT_THAT(actual_foos, Pointwise(FooEq(), expected_foos)); EXPECT_THAT(actual_foos, Pointwise(FooEq(), expected_foos));
``` ```
### Member Matchers ## Member Matchers
| Matcher | Description | | Matcher | Description |
| :------------------------------ | :----------------------------------------- | | :------------------------------ | :----------------------------------------- |
@ -187,13 +188,13 @@ messages, you can use:
taking addresses of functions is fragile and generally not part of the taking addresses of functions is fragile and generally not part of the
contract of the function. contract of the function.
### Matching the Result of a Function, Functor, or Callback ## Matching the Result of a Function, Functor, or Callback
| Matcher | Description | | Matcher | Description |
| :--------------- | :------------------------------------------------ | | :--------------- | :------------------------------------------------ |
| `ResultOf(f, m)` | `f(argument)` matches matcher `m`, where `f` is a function or functor. | | `ResultOf(f, m)` | `f(argument)` matches matcher `m`, where `f` is a function or functor. |
### Pointer Matchers ## Pointer Matchers
| Matcher | Description | | Matcher | Description |
| :------------------------ | :---------------------------------------------- | | :------------------------ | :---------------------------------------------- |
@ -202,7 +203,7 @@ messages, you can use:
| `Pointer(m)` | `argument` (either a smart pointer or a raw pointer) contains a pointer that matches `m`. `m` will match against the raw pointer regardless of the type of `argument`. | | `Pointer(m)` | `argument` (either a smart pointer or a raw pointer) contains a pointer that matches `m`. `m` will match against the raw pointer regardless of the type of `argument`. |
| `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`. |
### 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
just one that matches a *tuple*. The following matchers can be used to match a just one that matches a *tuple*. The following matchers can be used to match a
@ -225,7 +226,7 @@ reorder them) to participate in the matching:
| `AllArgs(m)` | Equivalent to `m`. Useful as syntactic sugar in `.With(AllArgs(m))`. | | `AllArgs(m)` | Equivalent to `m`. Useful as syntactic sugar in `.With(AllArgs(m))`. |
| `Args<N1, N2, ..., Nk>(m)` | The tuple of the `k` selected (using 0-based indices) arguments matches `m`, e.g. `Args<1, 2>(Eq())`. | | `Args<N1, N2, ..., Nk>(m)` | The tuple of the `k` selected (using 0-based indices) arguments matches `m`, e.g. `Args<1, 2>(Eq())`. |
### Composite Matchers ## Composite Matchers
You can make a matcher from one or more other matchers: You can make a matcher from one or more other matchers:
@ -237,7 +238,7 @@ You can make a matcher from one or more other matchers:
| `AnyOfArray({m0, m1, ..., mn})`, `AnyOfArray(a_container)`, `AnyOfArray(begin, end)`, `AnyOfArray(array)`, or `AnyOfArray(array, count)` | The same as `AnyOf()` except that the matchers come from an initializer list, STL-style container, iterator range, or C-style array. | | `AnyOfArray({m0, m1, ..., mn})`, `AnyOfArray(a_container)`, `AnyOfArray(begin, end)`, `AnyOfArray(array)`, or `AnyOfArray(array, count)` | The same as `AnyOf()` except that the matchers come from an initializer list, STL-style container, iterator range, or C-style array. |
| `Not(m)` | `argument` doesn't match matcher `m`. | | `Not(m)` | `argument` doesn't match matcher `m`. |
### Adapters for Matchers ## Adapters for Matchers
| Matcher | Description | | Matcher | Description |
| :---------------------- | :------------------------------------ | | :---------------------- | :------------------------------------ |
@ -248,7 +249,7 @@ You can make a matcher from one or more other matchers:
`AddressSatisfies(callback)` and `Truly(callback)` take ownership of `callback`, `AddressSatisfies(callback)` and `Truly(callback)` take ownership of `callback`,
which must be a permanent callback. which must be a permanent callback.
### Using Matchers as Predicates {#MatchersAsPredicatesCheat} ## Using Matchers as Predicates {#MatchersAsPredicatesCheat}
| Matcher | Description | | Matcher | Description |
| :---------------------------- | :------------------------------------------ | | :---------------------------- | :------------------------------------------ |
@ -256,7 +257,7 @@ which must be a permanent callback.
| `ExplainMatchResult(m, value, result_listener)` | evaluates to `true` if `value` matches `m`, explaining the result to `result_listener`. | | `ExplainMatchResult(m, value, result_listener)` | evaluates to `true` if `value` matches `m`, explaining the result to `result_listener`. |
| `Value(value, m)` | evaluates to `true` if `value` matches `m`. | | `Value(value, m)` | evaluates to `true` if `value` matches `m`. |
### Defining Matchers ## Defining Matchers
| Matcher | Description | | Matcher | Description |
| :----------------------------------- | :------------------------------------ | | :----------------------------------- | :------------------------------------ |