Генерация правильного указателя на абстрактный класс для gtest - PullRequest
0 голосов
/ 29 апреля 2020

Я пишу тестовые случаи, используя google test для приложения c ++. Эта унаследованная функция принимает указатель на абстрактный класс (возможно, интерфейс). Теперь мое приложение на языке c ++ вызывает эту функцию следующим образом:

if(ptrAbsClass == NULL)
{
  if(legacyFoo(ptrAbsClass)){
      statement 1.....N
  }
}
else{
    Unreachable Statements 1-N
}

Естественно, большая часть покрытия будет зависеть от возврата legacyFoo (), и так как это аппаратно-зависимый сложный код, поэтому я хочу его заглушить.

Теперь, как я сказал, ptrAbsClass - это указатель на абстрактный класс, определенный где-то в этой внешней устаревшей библиотеке, я не могу сгенерировать из него действительный объект. Я знаю только имя класса, скажем, LegacyClass, Как мне создать действительный объект / указатель на него, который не является нулевым?

...