Я кодирую на C++, и я тестирую функцию. Однако эта функция имеет набор, поскольку я тестирую его из внешнего исходного файла с помощью GoogleTest. Я не могу придумать способ тестирования в нем определенной локальной переменной. Функция создает переменную указателя класса внутри себя и удаляет ее в конце функции. Если я переместю объявление локальной переменной в .h для общего класса, он отлично работает, и я могу сделать то, что когда-либо хочу для локальной переменной, независимо от ее удаления в конце. Итак, мой вопрос заключается в том, что мне не разрешено изменять исходную настройку, есть ли способ, с помощью которого любой может получить доступ к информации из локальной переменной через какую-то сложную логику или программирование вуду, о которых вы, ребята, знаете? Любые советы приветствуются! Также объект-указатель указывает на методы в своем классе и выполняет манипуляции данными через вход. Пример: pointerA-> setWidth (int, int); Мне нужно добраться до этого указателя в целом.Локальное тестирование блока переменных
foo(int number, int num) {
classA* pointerA = new classA;
pointerA->setWidth(number, num);
//other data manipulations
delete pointerA;
}
Пример теста:
EXPECT_EQ(pointerA->setWidth(returns width), 2); //checks to see if it returns
правильное значение 2
также причина, я хочу быть в состоянии сделать это без необходимости изменять любой код, потому что я надеюсь, чтобы это быть автоматизированным и запускать тест каждый раз, когда код компилируется. Это то, как я это настроил для всех моих других тестов, но у них нет местных варов.
Вы должны дать мне [MVCE] (http://stackoverflow.com/help/mcve), потому что я в замешательстве. – erip
Вы, вероятно, должны протестировать внутренний класс отдельно, а затем просто проверить функциональность этой функции правильно, что вы можете наблюдать снаружи. –
@MatsPetersson Я сделал это раньше, чтобы убедиться, что он работает по назначению. Через мое обновление для публикации хочу настроить его для автоматизации, поэтому мне не нужно возвращаться и повторять каждый раз, когда он был изменен. – DimensionalLensing