Когда я сохраняю свой макет объекта в куче, используя shared_ptr
, ожидания оправдываются и указатель уничтожается, но среда GMock считает, что макет объекта все еще жив:
// Using a mock object
MockFoo foo;
EXPECT_CALL(foo, doSomething());
foo.doSomething();
// Test passes without warnings
// Using shared_ptr to a mock object
auto foo_sp = std::make_shared<MockFoo>();
EXPECT_CALL(*foo_sp, doSomething());
A a(std::move(foo_sp));
a.useFoo();
// a is then deleted
...
// in useFoo:
foo_sp->doSomething();
...
// Test passes WITH warnings that mock object is still alive
Это ошибка в фреймворке Google Mock? Если нет, то как я могу сохранить мой макет объекта в куче в интеллектуальном указателе и правильно его использовать?