C++:
Написание тестов
Как:
Давайте используем простую функцию на C++ и тест с использованием фреймворка Catch2.
// main.cpp
#define CATCH_CONFIG_MAIN // Позволим Catch предоставить main().
#include <catch2/catch.hpp>
int Add(int a, int b) {
return a + b;
}
TEST_CASE( "Сложение работает", "[математика]" ) {
REQUIRE( Add(2, 2) == 4 );
}
Скомпилируйте с помощью g++ -std=c++17 main.cpp -o test -lcatch2
и запустите ./test
. Пример вывода:
Все тесты пройдены (1 утверждение в 1 тестовом примере)
Подробнее
Тестирование всегда не было нормой. В 70-х это было ручное. Теперь автоматические тесты являются ключевыми в гибкой разработке и разработке через тестирование (TDD - Test-Driven Development). Альтернативы Catch2? Google Test, Boost.Test и CppUnit, каждый с уникальными особенностями. Помните: тесты проверяют, соответствует ли код требованиям, а не корректность этих требований — это вопрос спецификации.
См. также
- Catch2: https://github.com/catchorg/Catch2
- Google Test: https://github.com/google/googletest
- Boost.Test: https://www.boost.org/doc/libs/release/libs/test/
- CppUnit: https://freedesktop.org/wiki/Software/cppunit/