mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-19 11:56:11 +01:00
Completed assertions docs
This commit is contained in:
parent
46953c8319
commit
fd1cd7820d
@ -1,4 +1,58 @@
|
||||
placeholder for assertion macros
|
||||
# Assertion Macros
|
||||
|
||||
Most test frameworks have a large collection of assertion macros to capture all possible conditional forms (_EQUALS, _NOTEQUALS, _GREATER_THAN etc).
|
||||
|
||||
Catch is different. Because it decomposes natural C-style conditional expressions most of these forms are reduced to one or two that you will use all the time. That said there are a rich set of auxilliary macros as well. We'll describe all of these here.
|
||||
|
||||
Most of these macros come in two forms:
|
||||
|
||||
## Natural Expressions
|
||||
|
||||
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 orthoginal assertions and it is useful to see all the results rather than stopping at the first failure.
|
||||
|
||||
**REQUIRE(** _expression_ **)** and
|
||||
**CHECK(** _expression_ **)**
|
||||
Evaluates the expression and records the result. If an exception is thrown it is caught, reported, and counted as a failure. These are the macros you will use most of the time
|
||||
|
||||
Examples:
|
||||
|
||||
```c++
|
||||
CHECK( str == "string value" );
|
||||
CHECK( thisReturnsTrue() );
|
||||
REQUIRE( i == 42 );
|
||||
```
|
||||
**REQUIRE_FALSE(** _expression_ **)** and
|
||||
**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.
|
||||
(these forms exist as a workaround for the fact that ! prefixed expressions cannot be decomposed).
|
||||
|
||||
Example:
|
||||
```c++
|
||||
REQUIRE_FALSE( thisReturnsFalse() );
|
||||
```
|
||||
|
||||
## Exceptions
|
||||
|
||||
**REQUIRE_THROWS(** _expression_ **)** and
|
||||
**CHECK_THROWS(** _expression_ **)**
|
||||
Expects that an exception (of any type) is be thrown during evaluation of the expression.
|
||||
|
||||
**REQUIRE_THROWS_AS(** _expression_ and _exception type_ **)** and
|
||||
**CHECK_THROWS_AS(** _expression_, _exception type_ **)**
|
||||
Expects that an exception of the _specified type_ is thrown during evaluation of the expression.
|
||||
|
||||
**REQUIRE_NOTHROW(** _expression_ **)** and
|
||||
**CHECK_NOTHROW(** _expression_ **)**
|
||||
Expects that no exception is thrown during evaluation of the expression.
|
||||
|
||||
## Matcher expressions
|
||||
|
||||
To support Matchers a slightly different form is used. Matchers will be more fully documented elsewhere. *Note that Matchers are still at early stage development and are subject to change.*
|
||||
|
||||
**REQUIRE_THAT(** _lhs_, __matcher call__ **)** and
|
||||
**CHECK_THAT(** _lhs_, __matcher call__ **)**
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user