Перейти к основному содержимому

Тестовая инфраструктура

DCR имеет встроенный минималистичный фреймворк для тестирования на C/C++.

Макросы

EXPECT(expr, ...)

Проверяет, что выражение истинно.

EXPECT(1 + 1 == 2);
EXPECT(ptr != NULL, "ptr should not be NULL");

SKIP(...)

Пропускает тест с опциональным сообщением.

SKIP("not implemented on Windows yet");

TEST(name)

Определяет тест.

TEST(addition) {
EXPECT(1 + 1 == 2);
EXPECT(2 + 2 == 4);
}

TEST_CASE(name, ...)

Определяет параметризованный тест (макрос, принимающий список аргументов).

TEST_CASE(math, a, b) {
EXPECT(a + b == b + a);
}

Инициализация

dcr test --init

Создаются файлы:

  • tests/dcr_test.h — заголовочный файл фреймворка
  • tests/test.c — шаблон с примером теста

Структура tests/

tests/
├── dcr_test.h # фреймворк (не редактировать)
├── test.c # основные тесты
└── ... # дополнительные .c файлы с тестами

Все .c/.cpp файлы в tests/ автоматически собираются в тестовый бинарник.