Исходя из моего опыта, я не могу рекомендовать Qt test framework.Можно упомянуть два возможных преимущества:
- QSignalSpy: для проверки испускаемых сигналов (полезно только для Qt), но это также может быть использовано с другой средой тестирования
- easyдля записи параметризованных тестов
Основные недостатки:
- Светильники не поддерживаются по умолчанию, вы должны обойти его в setUp tearDown
- QCOMPARE не может сравниватьзначения с разным типом.Например, сравнение двух
std::chrono::duration
с различным соотношением невозможно, хотя они одинаково сопоставимы.Раздавать очень просто за QCOMPARE
Повышение простое и удобное в использовании, оно хорошо работает в большинстве случаев, без сюрпризов.
Основное преимущество тестовой среды Google - этонасмешливая поддержка.Но эту функцию можно использовать и для других платформ.Он имеет много замечательных функций, таких как определение ожидаемых последовательностей вызовов, пользовательских сопоставлений, утверждения могут быть удобочитаемыми.Но требуется время, чтобы ознакомиться с этими функциями (при условии, что они вам нужны).
Я хочу упомянуть еще одну среду: Catch.Это фреймворк только для заголовков, с очень немногими утверждениями.Например.REQUIRE(a == b)
будет работать, а значения a
и b
будут разрешены при ошибке.Нет необходимости в классах приборов или шаблонах, вы можете просто определить секции в тестовом примере, это будет выполнено N раз, с разными секциями.Это очень просто, читабельно для человека.С другой стороны, для компиляции по умолчанию требуется время.