C++技巧之 【MOCKCPP框架实现成员函数的mock】

本文介绍了如何使用MOCKCPP框架在C++中实现成员函数的mock,针对gmock只能mock虚函数的限制,提供了一种简单易用的方法。文章通过实例展示了如何快速地引入和应用这个技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++技巧之 【MOCKCPP 框架实现成员函数的 mock】,最简单的入口和使用方式!

背景

gmock 只能 mock 虚函数,mockcpp却又难以 mock 成员函数,现存的一些方法也可以 mock 成员函数,但是需要填写大量的参数,格式也非常恶心反人类,本文旨在开发一种方法去进行简单的mock,使用用例如下:

Class Base{
   
	void A(){
   }
	void B(int a){
   }
	void B(int a, int b){
   }
};
void FakeA(){
   }
void FakeB1(Base* ptr, int a){
   }
void FakeB2(Base* ptr, int a,int b){
   }

MOCK_FUNCTION(&Base::A).stubs().will(Invoke(FakeA));
MOCK_FUNCTION(Base::B, void(Base*,int)).stubs().will(Invoke(FakeB1));
MOCK_FUNCTION(Base::B, void(Base*,int,int)).stubs().will(Invoke(FakeB2));

实现

直接将本代码复制进去成为一个单独的文件,使用的时候 include 该文件即可

#pragma once
#include <tuple>
#include "mockcpp/mockcpp.hpp"
// for member function
template <typename T>
class Foo {
   };

template <typename R, typename C, typename... A>
class Foo<R(C, A...)>
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值