首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Googlemock未捕获泄漏对象

Googlemock未捕获泄漏对象
EN

Stack Overflow用户
提问于 2016-01-15 08:23:25
回答 1查看 204关注 0票数 2

我创建了一个googlemock文本工具类,在SetUp中,我使用new创建了两个对象。在拆卸中,如果我不删除任何一个对象,我只会得到其中一个对象的内存泄漏错误。

代码语言:javascript
复制
class MissileLauncherListenerTest : public ::testing::Test {
protected:
    MissileLauncher* launcher;
    MockProjectileCreatorListener* launcher_listener;

    virtual void SetUp() {
        launcher = new MissileLauncher(FRIENDLY) ;
        launcher_listener = new MockProjectileCreatorListener();
        launcher->add_listener(launcher_listener);
    }

    virtual void TearDown() {
        delete launcher_listener;
    }
};

TEST_F(MissileLauncherListenerTest, multiple_listeners_notified) {
    MockProjectileCreatorListener launcher_listener2;

    EXPECT_CALL(*launcher_listener, notify_projectile_launched(_, _));
    EXPECT_CALL(launcher_listener2, notify_projectile_launched(_, _));

    launcher->add_listener(&launcher_listener2);
    launcher->create_missile(0, 0, 0, 0);
} 

在这段代码中,我没有从googletest获得内存泄漏错误,难道我不应该为MissileLauncher接收一个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-15 08:35:20

您没有收到MissileLauncher对象的内存泄漏错误,因为它不是模拟对象。它是类的一个对象,因此gmock不会跟踪任何泄漏。另一方面,类MockProjectileCreatorListener是由gmock生成的。因此,该类的所有对象都是模拟对象,gmock机制将警告您此类对象的泄漏。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34806872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档