Я вхожу в проект, в котором у нас есть большая база кода, и в настоящее время он вообще не имеет фреймворков. Код, над которым мы работаем, будет, наконец, запущен на ящике, который действует как коммутатор/маршрутизатор/межсетевой экран.Gtest с большой C и C++ codebase
Так что я работаю над фрагментом кода, который необходимо протестировать с помощью Gtest. проблема, с которой я сталкиваюсь, - издеваться над переменными, чтобы протестировать сама функция. Например, у меня есть функция, которая использует как 4 указателя для разных объектов и использует пару глобальных переменных. Чтобы протестировать разные пути в коде, мне нужно инициализировать почти все переменные состояния/значения зависимых переменных. Добавляя к сложности, как это верно в большой кодовой базе, эта функция/метод, который я написал, использует кучу других подпрограмм/методов, которые также должны быть проверены. Каждый из них должен быть также проверен, а каждый из них имеет свои собственные зависимости. Я не уверен, правильно ли я исправляю проблему, или это тот случай, когда gtest не может быть правильным инструментом для тестирования такой большой базы кода.
Если кто имеет опыт работы с тестированием Say Say вызов стека сказать
function A {
code
code
function B
code
code
function C
code
}
function B
{
function D
code
function E
}
function C{
code
function F
function G
code
}
что-то вроде this.How я проверить все эти функции A-F ?? Что такое хорошая стратегия?
Почему этот тег C++ при написании кода C? BTW Глобальные переменные - плохая идея. –
. В базе кода есть как C, так и C++. Я знаю, что глобальные переменные - плохая идея. Вот как она была разработана прямо сейчас. Чтобы жить с ней :) –
Тестирование большого/сложного кода НИКОГДА не является простым. Вам нужно написать тесты, которые работают через ваш код, и часто настраивать различные объекты. Там, где я работаю, время для написания тестов часто занимает 2-5-кратное время, необходимое для фактического создания реального кода. Только тогда, когда код для тестирования ДЕЙСТВИТЕЛЬНО прост, это число уменьшается до 1,5 или 2x. Иногда тестовый код может занять более 10 раз первоначальное кодирование. –