尝试引用已删除的函数 _ gmock

attempt to reference a deleted function _ gmock

我是第一次使用 GMock,我正在使用纯虚拟方法模拟 class, 我从 Mock class

创建了一个实例
MockInterface mockIntr;

然后我需要将这个 mock 作为参数传递给另一个函数

func->action(std::make_shared<MockInterface>(mockIntr);

在这种情况下,我得到了错误: “C2280:MockInterface::MockInterface(const MockInterface&):尝试引用已删除的函数”

我不确定解决方案是在 class MockInterface 中创建一个复制构造函数,还是有其他方法可以解决这个问题。

您没有通过 那个 模拟,您正在尝试复制它并通过副本。
make_shared<T>(x) 的意思是“从 x 创建一个我们可以共享的新 T”,而不是“让我们共享 x”。)

立即创建共享对象:

auto mockIntr = std::make_shared<MockInterface>();
func->action(mockIntr);