Я пишу тестовые случаи, используя google test для приложения c ++. Эта унаследованная функция принимает указатель на абстрактный класс (возможно, интерфейс). Теперь мое приложение на языке c ++ вызывает эту функцию следующим образом:
if(ptrAbsClass == NULL)
{
if(legacyFoo(ptrAbsClass)){
statement 1.....N
}
}
else{
Unreachable Statements 1-N
}
Естественно, большая часть покрытия будет зависеть от возврата legacyFoo (), и так как это аппаратно-зависимый сложный код, поэтому я хочу его заглушить.
Теперь, как я сказал, ptrAbsClass - это указатель на абстрактный класс, определенный где-то в этой внешней устаревшей библиотеке, я не могу сгенерировать из него действительный объект. Я знаю только имя класса, скажем, LegacyClass, Как мне создать действительный объект / указатель на него, который не является нулевым?