gpt4 book ai didi

c++ - GMock 泄漏内存

转载 作者:行者123 更新时间:2023-11-28 01:49:02 34 4
gpt4 key购买 nike

<分区>

代码

class A {
public:
void doit() {...}
}

class B {
public:
explicit B(unique_ptr<A> a): a_(move(a)) {}

void run() {
a_->doit();
}

private:
unique_ptr<A> a_;
}

测试代码

class MockA : public A {
public:

MOCK_METHOD0(doit, void(void));
}

TEST(BTest, Test) {
auto mockA = std::make_unique<A>();
EXPECT_CALL(*mockA, doit(_)).Times(1);

B b(std::move(mockA));
b.run();
}

运行此代码时会泄漏

错误:这个模拟对象(在测试 BTest.Test 中使用)应该被删除,但从来没有被删除。它的地址是@0x1234。

由于预期应该在销毁期间运行,我不确定它为什么会导致问题。

我尝试了此处描述的 shared_ptr 别名方法 - Dependency injection with unique_ptr to mock但即便如此我还是得到了那个异常(exception)。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com