首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >googlemock:模拟本地对象

googlemock:模拟本地对象
EN

Stack Overflow用户
提问于 2017-09-23 07:46:59
回答 1查看 245关注 0票数 1
代码语言:javascript
复制
#include "gtest/gtest.h"
#include "gmock/gmock.h"  

class Turtle{
    public:
        int foo(); 
};

int func(){
    Turtle local_tutrtle;
    auto x = local_tutle.foo(); 

    ......

    return x;
}

TEST(mock, foo) {
    class MockTurtle : public Turtle {
        public:
            MOCK_METHOD0(foo, int());
    };

    ASSERT_EQ(10, func());
}

如何在local_turtle ()中模拟函数?我想在不修改local_tutle.foo()的情况下改变func()的返回值;

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-09-23 07:53:32

你不能这么做。

您必须从外部补充mocked object (在您的示例turtle中),方法是将(mocked或nomral) turtle对象作为参数传递。

这种设计模式被称为依赖注入,您应该尽快熟悉它,因为它在设计易于测试和经常使用的应用程序时非常重要。

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

https://stackoverflow.com/questions/46374625

复制
相关文章

相似问题

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