Minimalist unit testing framework for C++ projects.
- Assertion macros for common checks
- Test case registration
- Test execution and reporting
- Exception testing
- Case-insensitive string comparisons
- Simple test organization
- Automatic test discovery
UTEST(test_case_name, test_name)- Defines a test case
ASSERT_TRUE(condition)- Fails if condition is falseASSERT_FALSE(condition)- Fails if condition is trueASSERT_EQ(expected, actual)- Fails if values not equalASSERT_NE(val1, val2)- Fails if values equalASSERT_LT(val1, val2)- Fails if val1 >= val2ASSERT_LE(val1, val2)- Fails if val1 > val2ASSERT_GT(val1, val2)- Fails if val1 <= val2ASSERT_GE(val1, val2)- Fails if val1 < val2ASSERT_STREQ(expected_str, actual_str)- Fails if C-strings not equalASSERT_STRNE(str1, str2)- Fails if C-strings equalASSERT_STRCASEEQ(expected_str, actual_str)- Case-insensitive string comparisonASSERT_STRCASENE(str1, str2)- Case-insensitive string inequalityASSERT_THROW(statement, exception_type)- Fails if no exception thrownASSERT_NO_THROW(statement)- Fails if exception thrown
SUCCEED()- Explicitly mark test as successfulFAIL()- Explicitly fail testRUN_ALL_TESTS()- Executes all registered tests
#include <CUtils/UnitTests.hpp>
UTEST(MathTests, Addition)
{
int result_ = 2 + 2;
ASSERT_EQ(4, result_);
}
UTEST(MathTests, Division)
{
ASSERT_THROW(10 / 0, std::exception);
}
UTEST(StringTests, CaseInsensitive)
{
ASSERT_STRCASEEQ("HELLO", "hello");
}
int main()
{
return RUN_ALL_TESTS();
}Минималистичный фреймворк для модульного тестирования C++ проектов.
- Макросы проверок (assertions)
- Регистрация тестовых случаев
- Выполнение тестов и отчетность
- Тестирование исключений
- Регистронезависимые сравнения строк
- Простая организация тестов
- Автоматическое обнаружение тестов
UTEST(test_case_name, test_name)- Определяет тестовый случай
ASSERT_TRUE(condition)- Ошибка если условие ложноASSERT_FALSE(condition)- Ошибка если условие истинноASSERT_EQ(expected, actual)- Ошибка если значения не равныASSERT_NE(val1, val2)- Ошибка если значения равныASSERT_LT(val1, val2)- Ошибка если val1 >= val2ASSERT_LE(val1, val2)- Ошибка если val1 > val2ASSERT_GT(val1, val2)- Ошибка если val1 <= val2ASSERT_GE(val1, val2)- Ошибка если val1 < val2ASSERT_STREQ(expected_str, actual_str)- Ошибка если C-строки не равныASSERT_STRNE(str1, str2)- Ошибка если C-строки равныASSERT_STRCASEEQ(expected_str, actual_str)- Регистронезависимое сравнениеASSERT_STRCASENE(str1, str2)- Регистронезависимое неравенствоASSERT_THROW(statement, exception_type)- Ошибка если исключение не брошеноASSERT_NO_THROW(statement)- Ошибка если брошено исключение
SUCCEED()- Явно отмечает тест как успешныйFAIL()- Явно проваливает тестRUN_ALL_TESTS()- Выполняет все зарегистрированные тесты
#include <CUtils/UnitTests.hpp>
UTEST(MathTests, Addition)
{
int result_ = 2 + 2;
ASSERT_EQ(4, result_);
}
UTEST(MathTests, Division)
{
ASSERT_THROW(10 / 0, std::exception);
}
UTEST(StringTests, CaseInsensitive)
{
ASSERT_STRCASEEQ("HELLO", "hello");
}
int main()
{
return RUN_ALL_TESTS();
}