mirror of
https://github.com/catchorg/Catch2.git
synced 2025-11-22 13:09:32 +01:00
a47b8dee744165f1f2ce3d184746b3a301f50f8a
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>
v1.5.7
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:
- Why do we need yet another C++ Test Framework?
- Tutorial - getting started
- Reference section - all the details
More
- Issues and bugs can be raised on the Issue tracker on GitHub
- For discussion or questions please use the dedicated Google Groups forum
Description
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)
Readme
81 MiB
Languages
C++
90%
CMake
5.4%
Python
3.4%
Meson
0.7%
Starlark
0.3%

