Юнит тесты - gogafefe/StAlGoLM GitHub Wiki
Юнит-тесты
В проекте реализованы два набора QtTest для генераторов Task2 и Task3. Они проверяют функции без запуска TCP-сервера и SQLite. Исходники соответствуют локальной версии проекта на 7 октября 2026 года, базовый коммит 358822193604e5969754c130955a27813a897d49.
Покрытие
| Набор | Метод теста | Проверка |
|---|---|---|
| Task2 | invalid_task_number_returns_error |
Номера 0 и 11 возвращают текст error и correctAnswer = -1 |
| Task2 | valid_task_number_generates_problem |
Все шаблоны 1–10: непустое условие, название метода, четыре варианта, правильный индекс 1–4 |
| Task2 | correct_option_matches_newton_formula |
200 генераций: отмеченный ответ совпадает с x0 - f(x0)/f'(x0) с отклонением менее 0.01 |
| Task2 | options_are_pairwise_distinct |
200 генераций: разница каждой пары вариантов больше 0.009 |
| Task3 | invalidNumberReturnsError |
Номера 0 и 11 возвращают ошибку и индекс −1 |
| Task3 | validTemplatesHaveFourOptions |
Все шаблоны 1–10 разбираются, содержат четыре варианта и индекс 1–4 |
| Task3 | markedOptionHasRequiredAccuracy |
300 генераций: смена знака на границах, ошибка относительно независимого расчёта корня не более epsilon + 0.0002 |
| Task3 | optionsArePairwiseDistinct |
200 генераций: разница каждой пары вариантов не менее 0.009 |
Случайная генерация означает, что повторные запуски используют разные данные. Эти тесты не покрывают интерфейс, права доступа, TCP и сохранение статистики; для них предусмотрены Тест-кейсы.
Исходники
Копии в Wiki предназначены для просмотра. Собирать нужно из основного репозитория: проекты тестов используют ../task2.cpp и ../task3.cpp.
Запуск в Windows
Откройте терминал комплекта Qt с MinGW, перейдите в папку основного проекта и выполните:
New-Item -ItemType Directory -Force build-tests/task2 | Out-Null
Set-Location build-tests/task2
qmake ../../tests/task2tests.pro
mingw32-make
./release/tst_task2_test.exe
Set-Location ../..
New-Item -ItemType Directory -Force build-tests/task3 | Out-Null
Set-Location build-tests/task3
qmake ../../tests/task3tests.pro
mingw32-make
./release/tst_task3_test.exe
При сборке Debug исполняемые файлы находятся в debug, а не release. Успешный запуск должен завершиться без FAIL и с кодом возврата 0.
Проверка при обновлении Wiki
7 октября 2026 года предпринята сборка обоих наборов в Qt 6.12.0 / MinGW 13.1.0. Оба остановились на этапе qmake: QMAKE_CXX.COMPILER_MACROS is not defined, failed to parse default include paths from compiler output. Тесты не выполнялись; успешное прохождение не подтверждено.