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
Matthew Parnell 64fd5b8058 Add BDD AND_GIVEN based macros
issue #1360

It is possible to have multple  given contexts in a single BDD scenario;
if you have to type 'and' in the GIVEN description; it's very likely you
need an AND.

A generic AND  is not possible, thus a AND_GIVEN  is added to complement
the AND_WHEN and AND_THEN.

Can be used without needing to increase indent:

	SCENARIO("...") {
		GIVEN("...")
		AND_GIVEN("...") {
			WHEN("...") {
				THEN("...") {
					// ...
				}
			}
		}
	}

would correctly output, when requested/needed:

    Given: ...
And given: ...
     When: ...
     Then: ...

The padding had to be increased by a character in the output message, to
continue to be uniform.
2018-09-02 16:53:57 +02:00
.github Added "How to test changes in PR" section to documentation 2017-06-22 18:56:10 +02:00
artwork Tweaked logo 2017-11-07 11:41:49 +00:00
CMake Separate Catch2Config from targets 2018-06-24 12:32:22 +02:00
contrib Properly unset tags variable. 2018-07-10 12:48:14 +02:00
docs Docs: TABs to Spaces 2018-08-29 18:05:22 +02:00
examples Fix examples compilation for some combinations of Clang and libstdc++ 2018-08-28 10:12:53 +02:00
include Add BDD AND_GIVEN based macros 2018-09-02 16:53:57 +02:00
misc Build ExtraTests when building Examples on AppVeyor 2018-08-31 18:32:23 +02:00
projects Suppress Wunreachable-code in floating matchers and exception tests 2018-09-01 22:34:29 +02:00
scripts Tests: Spaces & TABs 2018-08-29 18:28:27 +02:00
single_include/catch2 v2.3.0 2018-07-23 10:12:15 +02:00
test_package v2.3.0 2018-07-23 10:12:15 +02:00
third_party Bring in Clara v1.1.4 2018-03-09 10:37:56 +01:00
.gitattributes Update gitattributes 2018-07-23 10:15:52 +02:00
.gitignore Exclude benchmark dir 2018-01-05 14:39:59 +00:00
.travis.yml Add ExtraTests infrastructure 2018-08-28 12:57:20 +02:00
appveyor.yml No longer allow failures for VS2017 on AppVeyor 2018-08-29 13:39:24 +02:00
CMakeLists.txt Make Catch2ConfigVersion.cmake be generated as arch-independent 2018-09-01 21:51:49 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-08-17 07:45:12 +01:00
codecov.yml Fix broken YAML in a way that codecov understands 2018-05-10 14:49:40 +02:00
conanfile.py v2.3.0 2018-07-23 10:12:15 +02:00
LICENSE.txt Renamed licence file, license should now be detected by github 2017-03-20 08:59:25 +01:00
README.md v2.3.0 2018-07-23 10:12:15 +02:00

catch logo

Github Releases Build Status Build status codecov Try online Join the chat in Discord: https://discord.gg/4CWS9zD

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

Catch2 is released!

If you've been using an earlier version of Catch, please see the Breaking Changes section of the release notes before moving to Catch2. You might also like to read this blog post for more details.

What's the Catch?

Catch2 stands for C++ Automated Test Cases in a Header and is a multi-paradigm test framework for C++. which also supports Objective-C (and maybe C). It is primarily distributed as a single header file, although certain extensions may require additional headers.

How to use it

This documentation comprises these three parts:

More