Тестирование кода на C++ и Qt: QTest, Google Test, Catch2, Boost.Test, модульные тесты, моки и интеграция тестов в сборку. Практические примеры — как начать тестировать существующий проект и не бросить.
Бенчмаркинг производительности кода с QBENCHMARK и Google Benchmark
Введение Помимо корректности, для многих частей кода важна производительность — особенно горячих путей выполнения (циклы обработки данных, парсеры, алгоритмы сортировки). Замерять производительность «на глаз» через однократный запуск с…
Property-based тестирование в C++: RapidCheck и его применение
Введение Традиционные юнит-тесты проверяют конкретные, заранее придуманные примеры входных данных («при a=2, b=3 ожидаем 5»). Property-based тестирование переворачивает подход: вместо конкретных примеров формулируется общее свойство, которое должно выполняться…
Code coverage для Qt-проекта: gcov, lcov и интерпретация отчётов
Введение Покрытие кода тестами (code coverage) показывает, какая доля строк/веток кода была выполнена хотя бы раз во время прогона тестового набора. Это не метрика качества тестов само по…
Тестирование QML-кода: Qt Quick Test на практике
Введение Логика, написанная непосредственно в QML и JavaScript (привязки свойств, обработчики событий, кастомные компоненты), нуждается в тестировании не меньше, чем код на C++, но QTest напрямую не предназначен…
Сравнение QTest, Catch2 и GTest для Qt-проектов: что выбрать в 2026
Введение Хотя QTest — «родной» фреймворк тестирования Qt, многие проекты используют сторонние фреймворки — Catch2 или Google Test (GTest) — даже для тестирования Qt-кода. В статье сравним три…
CI для Qt-проекта: автоматический запуск тестов в GitHub Actions
Введение Написанные тесты приносят пользу только если они регулярно выполняются — в идеале автоматически при каждом push и pull request. GitHub Actions — широко используемый сервис непрерывной интеграции,…
Тестирование сигналов и слотов с помощью QSignalSpy: продвинутые сценарии
Введение QSignalSpy — специализированный инструмент QTest для проверки факта и параметров испускания сигналов без необходимости вручную подключать слот-наблюдатель и хранить состояние. В предыдущей статье он упоминался для базовой…
Мокирование зависимостей в Qt-тестах: подходы и инструменты
Введение Юнит-тест должен проверять конкретную единицу логики в изоляции, но реальный код часто зависит от других объектов — сетевых клиентов, баз данных, файловой системы. Подмена таких зависимостей «заглушками»…