{"repo":"boost-ext/ut","free":true,"listed":false,"github":"https://github.com/boost-ext/ut","clone":"git clone https://github.com/boost-ext/ut.git","description":"C++20 μ(micro)/Unit Testing framework","language":"C++","stars":1438,"topics":["testing","tdd","bdd","cpp20"],"license":"BSL-1.0","category":"dev-tools","readme_excerpt":"\"If you liked it then you \"should have put a\" test on it\", Beyonce rule UT / μt Motivation Quick Start Overview Tutorial Examples User Guide FAQ Benchmarks C++ single header/single module, macro-free μ(micro)/Unit Testing Framework https://godbolt.org/z/T873jdEx4 Motivation Testing is a very important part of the Software Development, however, C++ doesn't provide any good testing facilities out of the box, which often leads into a poor testing experience for develops and/or lack of tests/coverage in general. One should treat testing code as production code! Additionally, well established testing practises such as Test Driven Development (TDD)/Behaviour Driven Development (BDD) are often not followed due to the same reasons. The following snippet is a common example of testing with projects in C++. There are quite a few problems with the approach above No names for tests (Hard to follow intentions by further readers) No automatic registration of tests (No way to run specific tests) Hard to debug (Assertions don't provide any information why it failed) Hard to scale (No easy path forward for parameterized tests, multiple suites, parallel execution, etc...) Hard to integrate (No easy way to have a custom output such as XML for CI integration) Easy to make mistakes (With implicit casting, floating point comparison, pointer comparison for strings, etc...) Hard to follow good practises such as TDD/BDD (Lack of support for sections and declarative expressions) ... UT is trying to ad","default_branch":null,"files":null,"tree":[],"storefront":"/r/boost-ext","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/boost-ext/ut/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}