mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
Update why-catch.md
This commit is contained in:
parent
a0d84654dd
commit
a62974eb6a
@ -33,7 +33,7 @@ FAQ:
|
|||||||
* [Known limitations](limitations.md#top)
|
* [Known limitations](limitations.md#top)
|
||||||
|
|
||||||
Other:
|
Other:
|
||||||
* [Why Catch?](why-catch.md#top)
|
* [Why Catch2?](why-catch.md#top)
|
||||||
* [Migrating from v2 to v3](migrate-v2-to-v3.md#top)
|
* [Migrating from v2 to v3](migrate-v2-to-v3.md#top)
|
||||||
* [Open Source Projects using Catch](opensource-users.md#top)
|
* [Open Source Projects using Catch](opensource-users.md#top)
|
||||||
* [Commercial Projects using Catch](commercial-users.md#top)
|
* [Commercial Projects using Catch](commercial-users.md#top)
|
||||||
|
@ -6,40 +6,53 @@ including (but not limited to),
|
|||||||
[Google Test](http://code.google.com/p/googletest/),
|
[Google Test](http://code.google.com/p/googletest/),
|
||||||
[Boost.Test](http://www.boost.org/doc/libs/1_49_0/libs/test/doc/html/index.html),
|
[Boost.Test](http://www.boost.org/doc/libs/1_49_0/libs/test/doc/html/index.html),
|
||||||
[CppUnit](http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page),
|
[CppUnit](http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page),
|
||||||
[Cute](http://www.cute-test.com),
|
[Cute](http://www.cute-test.com), and
|
||||||
[many, many more](http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B).
|
[many, many more](http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B).
|
||||||
|
|
||||||
So what does Catch bring to the party that differentiates it from these? Apart from a Catchy name, of course.
|
So what does Catch2 bring to the party that differentiates it from these? Apart from the catchy name, of course.
|
||||||
|
|
||||||
|
|
||||||
## Key Features
|
## Key Features
|
||||||
|
|
||||||
* Quick and Really easy to get started. Just download catch.hpp, `#include` it and you're away.
|
* Quick and easy to get started. Just download two files, add them into your project and you're away.
|
||||||
* No external dependencies. As long as you can compile C++11 and have a C++ standard library available.
|
* No external dependencies. As long as you can compile C++14 and have the C++ standard library available.
|
||||||
* Write test cases as, self-registering, functions (or methods, if you prefer).
|
* Write test cases as, self-registering, functions (or methods, if you prefer).
|
||||||
* Divide test cases into sections, each of which is run in isolation (eliminates the need for fixtures).
|
* Divide test cases into sections, each of which is run in isolation (eliminates the need for fixtures).
|
||||||
* Use BDD-style Given-When-Then sections as well as traditional unit test cases.
|
* Use BDD-style Given-When-Then sections as well as traditional unit test cases.
|
||||||
* Only one core assertion macro for comparisons. Standard C/C++ operators are used for the comparison - yet the full expression is decomposed and lhs and rhs values are logged.
|
* Only one core assertion macro for comparisons. Standard C/C++ operators are used for the comparison - yet the full expression is decomposed and lhs and rhs values are logged.
|
||||||
* Tests are named using free-form strings - no more couching names in legal identifiers.
|
* Tests are named using free-form strings - no more couching names in legal identifiers.
|
||||||
|
|
||||||
|
|
||||||
## Other core features
|
## Other core features
|
||||||
|
|
||||||
* Tests can be tagged for easily running ad-hoc groups of tests.
|
* Tests can be tagged for easily running ad-hoc groups of tests.
|
||||||
* Failures can (optionally) break into the debugger on Windows and Mac.
|
* Failures can (optionally) break into the debugger on common platforms.
|
||||||
* Output is through modular reporter objects. Basic textual and XML reporters are included. Custom reporters can easily be added.
|
* Output is through modular reporter objects. Basic textual and XML reporters are included. Custom reporters can easily be added.
|
||||||
* JUnit xml output is supported for integration with third-party tools, such as CI servers.
|
* JUnit xml output is supported for integration with third-party tools, such as CI servers.
|
||||||
* A default main() function is provided, but you can supply your own for complete control (e.g. integration into your own test runner GUI).
|
* A default main() function is provided, but you can supply your own for complete control (e.g. integration into your own test runner GUI).
|
||||||
* A command line parser is provided and can still be used if you choose to provided your own main() function.
|
* A command line parser is provided and can still be used if you choose to provided your own main() function.
|
||||||
* Catch can test itself.
|
|
||||||
* Alternative assertion macro(s) report failures but don't abort the test case
|
* Alternative assertion macro(s) report failures but don't abort the test case
|
||||||
* Floating point tolerance comparisons are built in using an expressive Approx() syntax.
|
* Good set of facilities for floating point comparisons (`Catch::Approx` and full set of matchers)
|
||||||
* Internal and friendly macros are isolated so name clashes can be managed
|
* Internal and friendly macros are isolated so name clashes can be managed
|
||||||
* Matchers
|
* Data generators (data driven test support)
|
||||||
|
* Hamcrest-style Matchers for testing complex properties
|
||||||
|
* Microbenchmarking support
|
||||||
|
|
||||||
## Who else is using Catch?
|
|
||||||
|
|
||||||
See the list of [open source projects using Catch](opensource-users.md#top).
|
## Who else is using Catch2?
|
||||||
|
|
||||||
See the [tutorial](tutorial.md#top) to get more of a taste of using Catch in practice
|
A whole lot of people. According to the 2021 Jetbrains C++ ecosystem survey,
|
||||||
|
about 11% of C++ programmers use Catch2 for unit testing, making it the
|
||||||
|
second most popular unit testing framework.
|
||||||
|
|
||||||
|
You can also take a look at the (incomplete) list of [open source projects](opensource-users.md#top)
|
||||||
|
or the (very incomplete) list of [commercial users of Catch2](commercial-users.md#top)
|
||||||
|
for some idea on who else also uses Catch2.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
See the [tutorial](tutorial.md#top) to get more of a taste of using
|
||||||
|
Catch2 in practice.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user