В этом тесте я получаю утечку памяти, которая, по-видимому, вызвана EXPECT_CALL, поскольку удаление этой строки -
EXPECT_CALL(*AMock_, method(_,_);
устраняет утечку.
Вотtest:
TEST_F(Test, testing)
{
auto AMock_ = std::make_unique<AMock>();
EXPECT_CALL(*AMock_, method(_,_).Times(AtLeast(1));
AMock_->init(NUMROW, NUMCOL);
EXPECT_TRUE(Mock::VerifyAndClearExpectations(AMock_.get()));
}
Вот макет:
#include <gmock/gmock.h>
#include "BaseB.h"
class AMock: public BaseB
{
public:
MOCK_METHOD2(method, void(int row, int col));
};
и класс BaseB:
class BaseB: public BaseA
{
public:
BaseB();
virtual ~BaseB();
virtual void init(int row, int col);
};
void BaseB::init(int row, int col)
{
int x = row / 2;
int y = col / 5;
method(x, y);
//codes codes codes..
}
, который был получен из BaseA:
class BaseA
{
public:
BaseA();
virtual ~BaseA();
virtual void method(int param1, int param2);
};
Базовые классы макета (BaseB и BaseA) уже имеют виртуальные деструкторы, поэтому я не уверен, что не так.Помогите!