首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gmock:返回无效值

Gmock:返回无效值
EN

Stack Overflow用户
提问于 2020-05-15 17:45:11
回答 1查看 52关注 0票数 0

使用枚举类时函数返回值的奇怪行为,在此之前,使用int并成功通过测试。

代码语言:javascript
复制
enum class rvalue
{
    ok = 0,
    bad = 1,
    other = 2,
};

class Speeder
{
public slots:
    rvalue Run(int speed)
    {
        if (speed < 0)
            return rvalue::bad;
        else if (speed > 1000)
            return rvalue::bad;
        else if (speed > 1)
            return rvalue::other;

        return rvalue::ok;
    }

};

class MockSpeeder : public Speeder
{
public:
    MOCK_METHOD1(Run, rvalue(int speed));
};

TEST(Mytest, RunTest)
{
    MockSpeeder mspeeder;
    Speeder speeder;
    EXPECT_CALL(mspeeder, Run(testing::_))
        .Times(1);

    auto a = mspeeder.Run(100); // The result is rvalue::ok. Why?
    auto b = speeder.Run(100); // Result is rvalue::other. 
    EXPECT_TRUE(a == b);
}

因此,一个名为a的变量等于rvalue::ok,尽管代码显示这样的结果显然是不可能的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-15 18:54:40

除非另行指定,否则mock将返回默认值。

它不调用基类实现。

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

https://stackoverflow.com/questions/61816310

复制
相关文章

相似问题

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