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, каждый с уникальными особенностями. Помните: тесты проверяют, соответствует ли код требованиям, а не корректность этих требований — это вопрос спецификации.

См. также