mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
Just some documentation.
This commit is contained in:
parent
97313f9033
commit
17c11e9601
@ -15,6 +15,9 @@ Catch is different. Because it decomposes natural C-style conditional expression
|
|||||||
Most of these macros come in two forms:
|
Most of these macros come in two forms:
|
||||||
|
|
||||||
## Natural Expressions
|
## Natural Expressions
|
||||||
|
```cpp
|
||||||
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
The ```REQUIRE``` family of macros tests an expression and aborts the test case if it fails.
|
The ```REQUIRE``` family of macros tests an expression and aborts the test case if it fails.
|
||||||
The ```CHECK``` family are equivalent but execution continues in the same test case even if the assertion fails. This is useful if you have a series of essentially orthogonal assertions and it is useful to see all the results rather than stopping at the first failure.
|
The ```CHECK``` family are equivalent but execution continues in the same test case even if the assertion fails. This is useful if you have a series of essentially orthogonal assertions and it is useful to see all the results rather than stopping at the first failure.
|
||||||
@ -52,6 +55,9 @@ This expression is too complex because of the `||` operator. If you want to chec
|
|||||||
|
|
||||||
|
|
||||||
### Floating point comparisons
|
### Floating point comparisons
|
||||||
|
```cpp
|
||||||
|
#include <catch2/catch_approx.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
When comparing floating point numbers - especially if at least one of them has been computed - great care must be taken to allow for rounding errors and inexact representations.
|
When comparing floating point numbers - especially if at least one of them has been computed - great care must be taken to allow for rounding errors and inexact representations.
|
||||||
|
|
||||||
@ -124,7 +130,9 @@ Expects that an exception of the _specified type_ is thrown during evaluation of
|
|||||||
|
|
||||||
* **REQUIRE_THROWS_WITH(** _expression_, _string or string matcher_ **)** and
|
* **REQUIRE_THROWS_WITH(** _expression_, _string or string matcher_ **)** and
|
||||||
* **CHECK_THROWS_WITH(** _expression_, _string or string matcher_ **)**
|
* **CHECK_THROWS_WITH(** _expression_, _string or string matcher_ **)**
|
||||||
|
```cpp
|
||||||
|
#include <catch2/matchers/catch_matchers.hpp>
|
||||||
|
```
|
||||||
Expects that an exception is thrown that, when converted to a string, matches the _string_ or _string matcher_ provided (see next section for Matchers).
|
Expects that an exception is thrown that, when converted to a string, matches the _string_ or _string matcher_ provided (see next section for Matchers).
|
||||||
|
|
||||||
e.g.
|
e.g.
|
||||||
@ -196,6 +204,20 @@ TEST_CASE_METHOD((Fixture<int, int>), "foo", "[bar]") {
|
|||||||
This solution is not always applicable, because it might require extra
|
This solution is not always applicable, because it might require extra
|
||||||
changes on the Catch's side to work.
|
changes on the Catch's side to work.
|
||||||
|
|
||||||
|
## Lambdas
|
||||||
|
Lambdas are a C++ language feature and can be freely used inside a `TEST_CASE` or a `SECTION`.
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
|
TEST_CASE("Dumb") {
|
||||||
|
auto fnTest = [](const bool bPass) { CHECK(bPass); };
|
||||||
|
|
||||||
|
fnTest(true);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
[godbolt](https://catch2.godbolt.org/z/ebdr9vKcj)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Home](Readme.md#top)
|
[Home](Readme.md#top)
|
||||||
|
@ -45,6 +45,9 @@ User code that cannot be executed repeatedly will lead to bogus results or
|
|||||||
crashes.
|
crashes.
|
||||||
|
|
||||||
## Benchmark specification
|
## Benchmark specification
|
||||||
|
```cpp
|
||||||
|
#include <catch2/benchmark/catch_benchmark.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
Benchmarks can be specified anywhere inside a Catch test case.
|
Benchmarks can be specified anywhere inside a Catch test case.
|
||||||
There is a simple and a slightly more advanced version of the `BENCHMARK` macro.
|
There is a simple and a slightly more advanced version of the `BENCHMARK` macro.
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
# Data Generators
|
# Data Generators
|
||||||
|
|
||||||
> Introduced in Catch2 2.6.0.
|
> Introduced in Catch2 2.6.0.
|
||||||
|
```cpp
|
||||||
|
#include <catch2/generators/catch_generators.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
Data generators (also known as _data driven/parametrized test cases_)
|
Data generators (also known as _data driven/parametrized test cases_)
|
||||||
let you reuse the same set of assertions across different input values.
|
let you reuse the same set of assertions across different input values.
|
||||||
@ -145,6 +148,16 @@ type, making their usage much nicer. These are
|
|||||||
|
|
||||||
> `range()` for floating point numbers has been introduced in Catch2 2.11.0
|
> `range()` for floating point numbers has been introduced in Catch2 2.11.0
|
||||||
|
|
||||||
|
### Random generators
|
||||||
|
```cpp
|
||||||
|
#include <catch2/generators/catch_generators_random.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Range generators
|
||||||
|
```cpp
|
||||||
|
#include <catch2/generators/catch_generators_range.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
And can be used as shown in the example below to create a generator
|
And can be used as shown in the example below to create a generator
|
||||||
that returns 100 odd random number:
|
that returns 100 odd random number:
|
||||||
|
|
||||||
|
@ -15,6 +15,9 @@ own and combine them with the Catch2-provided matchers seamlessly.
|
|||||||
|
|
||||||
|
|
||||||
## Using Matchers
|
## Using Matchers
|
||||||
|
```cpp
|
||||||
|
#include <catch2/matchers/catch_matchers.hpp>
|
||||||
|
```
|
||||||
|
|
||||||
Matchers are most commonly used in tandem with the `REQUIRE_THAT` or
|
Matchers are most commonly used in tandem with the `REQUIRE_THAT` or
|
||||||
`CHECK_THAT` macros. The `REQUIRE_THAT` macro takes two arguments,
|
`CHECK_THAT` macros. The `REQUIRE_THAT` macro takes two arguments,
|
||||||
|
Loading…
Reference in New Issue
Block a user