Данный проект представляет собой набор инструментов для тестирования кода на C++. Он включает в себя:
- Операторы вывода для контейнеров (
vector,set,map), чтобы удобно выводить их содержимое в потокostream. - Макросы для удобного тестирования (
ASSERT_EQUAL,ASSERT,RUN_TEST). - Класс
TestRunner, который позволяет запускать тесты и отображать результаты выполнения. - Функции
AssertEqualиAssert, которые проверяют равенство значений и логические выражения.
Функции operator<< позволяют выводить в std::ostream содержимое vector, set и map. Это удобно при тестировании, так как можно легко отобразить значения контейнеров в cerr или cout.
Проверяет, равны ли t и u. Если значения различаются, генерируется исключение std::runtime_error с пояснением.
Проверяет логическое выражение b. Если оно false, генерируется исключение с сообщением об ошибке.
Используется для управления тестами. Позволяет выполнять тестовые функции и выводить результаты:
- В случае успешного теста выводится
OK. - В случае ошибки выводится сообщение с описанием ошибки и номером теста.
- Если тестов не пройдено несколько, программа завершает выполнение с
exit(1).
Пример использования:
void TestFunction() {
ASSERT_EQUAL(2 + 2, 4);
ASSERT(1 < 2);
}
int main() {
TestRunner tr;
RUN_TEST(tr, TestFunction);
return 0;
}Проверяет, что x == y. Если это не так, тест завершается с сообщением об ошибке.
Проверяет, что x истинно (не false).
Запускает тест func с использованием TestRunner.
- Склонируйте репозиторий:
git clone <URL_РЕПОЗИТОРИЯ>
cd <НАЗВАНИЕ_ПРОЕКТА>- Используйте заголовочный файл в своем проекте:
#include "test_runner.h"- Определите тестовые функции и запустите их через
TestRunner. - Скомпилируйте и запустите программу:
g++ -std=c++17 main.cpp -o test_runner
./test_runner- Компилятор с поддержкой C++17 (или выше).
Если у вас есть вопросы или предложения, создайте issue в репозитории или свяжитесь со мной. 🚀