一个简单的可以编译的gmock实例,可以用来测试一些不确定的关键字

源码

从 https://github.com/google/googletest/blob/master/googlemock/test/gmock-function-mocker_test.cc 裁剪得来

#include "gmock/gmock.h"
#include "gtest/gtest.h"

namespace testing {
class FooInterface {
public:
    virtual ~FooInterface() {}
    virtual int RefQualifiedConstRef() const& = 0;
    virtual int RefQualifiedConstRefRef() const&& = 0;
};

class MockFoo : public FooInterface {
public:
    MockFoo() {}
    // Test reference qualified functions.
    MOCK_METHOD(int, RefQualifiedConstRef, (), (const, ref(&), override));
    MOCK_METHOD(int, RefQualifiedConstRefRef, (), (const, ref(&&), override));
private:
    GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo);
};


class FunctionMockerTest : public testing::Test {

};

TEST(FunctionMockerTest, RefQualified) {
    MockFoo mock_foo;

    EXPECT_CALL(mock_foo, RefQualifiedConstRef).WillOnce(Return(2));
    EXPECT_CALL(std::move(mock_foo),  RefQualifiedConstRefRef)
        .WillOnce(Return(2));

    EXPECT_EQ(mock_foo.RefQualifiedConstRef(), 2);
    EXPECT_EQ(std::move(mock_foo).RefQualifiedConstRefRef(), 2);  // NOLINT
}
}  // namespace testing

编译命令和运行结果

g++ -std=c++17 imitation.cpp -lgtest -lgmock -lgmock_main -g

在这里插入图片描述

参考

gmock入门:https://github.com/google/googletest/blob/master/docs/gmock_for_dummies.md

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值