Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A modern, C++-native, header-only, framework for unit-tests, TDD and BDD

C++ Automated Test Cases in Headers

License

NotificationsYou must be signed in to change notification settings

Corvusoft/catch-dependency

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Catch2 logo

Github ReleasesLinux build statusLinux build statusMacOS build statusBuild StatusCode CoverageTry onlineJoin the chat in Discord: https://discord.gg/4CWS9zD

What is Catch2?

Catch2 is mainly a unit testing framework for C++, but it alsoprovides basic micro-benchmarking features, and simple BDD macros.

Catch2's main advantage is that using it is both simple and natural.Test names do not have to be valid identifiers, assertions look likenormal C++ boolean expressions, and sections provide a nice and local wayto share set-up and tear-down code in tests.

Example unit test

#include<catch2/catch_test_macros.hpp>#include<cstdint>uint32_tfactorial(uint32_t number ) {return number <=1 ? number :factorial(number-1) * number;}TEST_CASE("Factorials are computed","[factorial]" ) {REQUIRE(factorial(1) ==1 );REQUIRE(factorial(2) ==2 );REQUIRE(factorial(3) ==6 );REQUIRE(factorial(10) ==3'628'800 );}

Example microbenchmark

#include<catch2/catch_test_macros.hpp>#include<catch2/benchmark/catch_benchmark.hpp>#include<cstdint>uint64_tfibonacci(uint64_t number) {return number <2 ? number :fibonacci(number -1) +fibonacci(number -2);}TEST_CASE("Benchmark Fibonacci","[!benchmark]") {REQUIRE(fibonacci(5) ==5);REQUIRE(fibonacci(20) ==6'765);BENCHMARK("fibonacci 20") {returnfibonacci(20);    };REQUIRE(fibonacci(25) ==75'025);BENCHMARK("fibonacci 25") {returnfibonacci(25);    };}

Note that benchmarks are not run by default, so you need to run it explicitlywith the[!benchmark] tag.

Catch2 v3 has been released!

You are on thedevel branch, where the v3 version is being developed.v3 brings a bunch of significant changes, the big one being that Catch2is no longer a single-header library. Catch2 now behaves as a normallibrary, with multiple headers and separately compiled implementation.

The documentation is slowly being updated to take these changes intoaccount, but this work is currently still ongoing.

For migrating from the v2 releases to v3, you should look atourdocumentation. It provides a simpleguidelines on getting started, and collects most common migrationproblems.

For the previous major version of Catch2look into thev2.x branchhere on GitHub.

How to use it

This documentation comprises these three parts:

More

About

A modern, C++-native, header-only, framework for unit-tests, TDD and BDD

C++ Automated Test Cases in Headers

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++90.2%
  • CMake5.4%
  • Python3.2%
  • Meson0.7%
  • Starlark0.3%
  • Batchfile0.1%
  • Other0.1%

[8]ページ先頭

©2009-2025 Movatter.jp