mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
Update explanation of REQUIRE_FALSE in docs/assertions.md
This commit is contained in:
parent
6a422bae0b
commit
5cd8938905
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
**Contents**<br>
|
**Contents**<br>
|
||||||
[Natural Expressions](#natural-expressions)<br>
|
[Natural Expressions](#natural-expressions)<br>
|
||||||
|
[Floating point comparisons](#floating-point-comparisons)<br>
|
||||||
[Exceptions](#exceptions)<br>
|
[Exceptions](#exceptions)<br>
|
||||||
[Matcher expressions](#matcher-expressions)<br>
|
[Matcher expressions](#matcher-expressions)<br>
|
||||||
[Thread Safety](#thread-safety)<br>
|
[Thread Safety](#thread-safety)<br>
|
||||||
@ -31,16 +32,26 @@ CHECK( thisReturnsTrue() );
|
|||||||
REQUIRE( i == 42 );
|
REQUIRE( i == 42 );
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Expressions prefixed with `!` cannot be decomposed. If you have a type
|
||||||
|
that is convertible to bool and you want to assert that it evaluates to
|
||||||
|
false, use the two forms below:
|
||||||
|
|
||||||
|
|
||||||
* **REQUIRE_FALSE(** _expression_ **)** and
|
* **REQUIRE_FALSE(** _expression_ **)** and
|
||||||
* **CHECK_FALSE(** _expression_ **)**
|
* **CHECK_FALSE(** _expression_ **)**
|
||||||
|
|
||||||
Evaluates the expression and records the _logical NOT_ of the result. If an exception is thrown it is caught, reported, and counted as a failure.
|
Note that there is no reason to use these forms for plain bool variables,
|
||||||
(these forms exist as a workaround for the fact that `!` prefixed expressions cannot be decomposed).
|
because there is no added value in decomposing them.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
```cpp
|
||||||
|
Status ret = someFunction();
|
||||||
|
REQUIRE_FALSE(ret); // ret must evaluate to false, and Catch2 will print
|
||||||
|
// out the value of ret if possibly
|
||||||
```
|
```
|
||||||
REQUIRE_FALSE( thisReturnsFalse() );
|
|
||||||
```
|
|
||||||
|
### Other limitations
|
||||||
|
|
||||||
Note that expressions containing either of the binary logical operators,
|
Note that expressions containing either of the binary logical operators,
|
||||||
`&&` or `||`, cannot be decomposed and will not compile. The reason behind
|
`&&` or `||`, cannot be decomposed and will not compile. The reason behind
|
||||||
@ -69,7 +80,7 @@ options.
|
|||||||
your tests.
|
your tests.
|
||||||
|
|
||||||
|
|
||||||
### Floating point comparisons
|
## Floating point comparisons
|
||||||
|
|
||||||
Comparing floating point numbers is complex, and [so it has its own
|
Comparing floating point numbers is complex, and [so it has its own
|
||||||
documentation page](comparing-floating-point-numbers.md#top).
|
documentation page](comparing-floating-point-numbers.md#top).
|
||||||
|
Loading…
Reference in New Issue
Block a user