Это первый раз, когда я хочу использовать модульные тесты в моем проекте на C++. Следовательно, у меня много существующих классов, для которых я буду писать тесты (по крайней мере для некоторых из них). Кроме того, приложение имеет, конечно, функцию main()
.Путаница об модульных тестах (googletest) и проектах/папках/файлах
Я использую qt creator с qmake, но также могу переключиться на cmake. Проект, qt creator и qmake работают хорошо.
Мое замешательство теперь, как добавить модульный тест? Я намерен использовать googletest. Я уже провел тест в новом проекте, тестируя некоторую фиктивную функцию add(int, int)
, со всем в одном файле (функция, тесты и основная). Как это работает с существующим проектом (который имеет свой собственный main()
). Нужно ли мне настроить второй проект и включить заголовки в тестовые файлы? Что такое хорошая структура папок для этого?
Один простой способ - создать lib, ваше приложение будет «только» иметь «главное», оно нормально вызовет класс/функцию lib. Затем ваше тестовое приложение также может ссылаться на вашу библиотеку и тестировать ее компоненты. (Всего 3 проекта: MyLib, MyApp, MyTest). – Jarod42
Это, безусловно, лучше, если ваши тесты во втором проекте. [Этот проект] (https://github.com/nholthaus/units) (который я автор) имеет gtest, встроенный в CMake, вы можете буквально скопировать/вставить файлы CMake, чтобы сойти с земли, и посмотреть пример структуры папок. –