как получить "новый" и "удалить" полностью покрытый и не частично покрытый gtest framework. против 2015 - PullRequest
0 голосов
/ 01 мая 2018

Я использую Google Test Framework для модульного тестирования моего кода, и я столкнулся с очень странной проблемой.

Я заметил, что любая строка, которая содержит динамическое размещение (new и delete), не получает полного покрытия, даже если код проходит через эти строки.

Я сделал простой пример, чтобы продемонстрировать проблему: допустим, у меня есть следующий класс:

class DummyClass // fully covered
{
public:
    int x;
    DummyClass() { x = 5; }; // fully covered
    ~DummyClass() { }; // fully covered
};

Теперь у меня есть следующая функция, которая статически и динамически выделяет этот класс:

static void CoverageFunctionTest()
{
    // any logic here
    DummyClass staticVar1; // fully covered
    DummyClass* dynamicVar = new DummyClass();  // partially covered
    // any logic here
    DummyClass staticVar2; // fully covered
    delete dynamicVar;  // partially covered
}

Строка с ключевым словом "new" и строка с "delete" ключевые слова считаются частично покрытыми и не полностью покрытыми.

Охват этой функции: 88,24%, хотя мы охватили каждую строку в нем, а охват класса - 100%.

Как я могу получить 100% покрытие кода для этой функции?

Ty!

...