A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
Go to file
mat tso a47b8dee74 Add support toString for containers
Standard container types were printed as `"{?}"`
(default `toString` implementation for unsupported class).
This was contradictory with the documentation:
> "Most [...] std types are supported out of the box"
when in fact only `string`, `vector` and `tupple` were supported.

 - Renamed the `toStringVector.cpp` test file to `toStringContainers.cpp`

 - Types are consider containers if they contain `value_type` and
   `const_iterator` members and have `begin` and `end` support
   (members or ADL findable) returning a `const_iterator`.
   `const_iterator::operator*` must also return a `const value_type &`

 - Beware that a trying to printing a type fulfilling those requirements
   but returning invalid iterators will results in undefined behaviour. In
   such case specialize the Catch::Detail::IsContainer trait to contain
   `static const bool value = false` to revert to the default behaviour
   (printing `"{?}"`).

Test pretty printing of `std::list`, `std::deque`, `std::forward_list`,
`std::array` in Catch assertion macro. More complex structure like
`std::queue` or `std::multi_map` should also be tested.

Signed-off-by: mat tso <mat-tso@topmail.ie>
2016-10-14 04:11:40 +02:00
docs Update tutorial.md 2016-04-04 23:04:45 -03:00
include Add support toString for containers 2016-10-14 04:11:40 +02:00
projects Add support toString for containers 2016-10-14 04:11:40 +02:00
scripts Removed unnecessary parentheses 2015-11-04 18:49:19 +00:00
single_include Build 1.5.7 2016-09-27 10:46:22 +01:00
.gitattributes Git Attributes, with control for line-endings 2013-10-18 07:53:05 +01:00
.gitignore Ignore *.xccheckout 2015-03-27 17:55:13 +00:00
.travis.yml Merge pull request #716 from jbcoe/master 2016-10-04 15:57:10 +01:00
catch-logo-small.png Added logo to readme 2013-03-21 19:12:21 +00:00
LICENSE_1_0.txt Fixed crlf issue 2013-11-07 13:05:29 +01:00
README.md Build 1.5.7 2016-09-27 10:46:22 +01:00

catch logo

v1.5.7

Build status (on Travis CI) Build Status

The latest, single header, version can be downloaded directly using this link

What's the Catch?

Catch stands for C++ Automated Test Cases in Headers and is a multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C). It is implemented entirely in a set of header files, but is packaged up as a single header for extra convenience.

How to use it

This documentation comprises these three parts:

More