mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 15:30:49 +00:00
70 lines
1.5 KiB
Plaintext
70 lines
1.5 KiB
Plaintext
---
|
||
sidebar_label: Тестовая инфраструктура (EXPECT, TEST, ...)
|
||
---
|
||
|
||
# Тестовая инфраструктура
|
||
|
||
DCR имеет встроенный минималистичный фреймворк для тестирования на C/C++.
|
||
|
||
## Макросы
|
||
|
||
### `EXPECT(expr, ...)`
|
||
|
||
Проверяет, что выражение истинно.
|
||
|
||
```c
|
||
EXPECT(1 + 1 == 2);
|
||
EXPECT(ptr != NULL, "ptr should not be NULL");
|
||
```
|
||
|
||
### `SKIP(...)`
|
||
|
||
Пропускает тест с опциональным сообщением.
|
||
|
||
```c
|
||
SKIP("not implemented on Windows yet");
|
||
```
|
||
|
||
### `TEST(имя)`
|
||
|
||
Определяет тест.
|
||
|
||
```c
|
||
TEST(сложение) {
|
||
EXPECT(1 + 1 == 2);
|
||
EXPECT(2 + 2 == 4);
|
||
}
|
||
```
|
||
|
||
### `TEST_CASE(name, ...)`
|
||
|
||
Регистрирует тестовый случай.
|
||
|
||
```c
|
||
TEST_CASE(math, a, b) {
|
||
EXPECT(a + b == b + a);
|
||
}
|
||
```
|
||
|
||
## Инициализация
|
||
|
||
```bash
|
||
dcr test --init
|
||
```
|
||
|
||
Создаются файлы:
|
||
|
||
* `tests/dcr_test.h` — заголовочный файл фреймворка
|
||
* `tests/test.c` — шаблон с примером теста
|
||
|
||
## Структура tests/
|
||
|
||
```
|
||
tests/
|
||
├── dcr_test.h # фреймворк (не редактировать)
|
||
├── test.c # основные тесты
|
||
└── ... # дополнительные .c файлы с тестами
|
||
```
|
||
|
||
Компилируются только файлы с расширением `.c` (файлы с расширением `.cpp` не поддерживаются).
|