mockcpp 官方实例_mockcpp学习实践总结

前言

mockcpp简介

mockcpp 的主要功能就是打桩。核心中的核心就是,一旦某个函数被MOCKER后,就不会执行被MOCKER的真实函数了,当调用被MOCKER的函数时,被MOCKER函数的行为就由MOCKER后面的规范决定,包括函数的返回值,入参判断,执行次数,设置指针作为返回值的值,等等。基本上可以实现你所有的幻想。如下图所示,正常情况下,Func_A()函数会调用Func_B()函数,但是我们一旦MOCKER(Func_B)后,Func_A调用的就不是真正的Func_B函数,而是由MOCKER规范制定的函数。

89ed348ab03f9744afa60e798de9eb21.png

mockcpp的主要应用场景就是单元测试,在单元测试中,被依赖的模块可能处于不可用的状态或者行为难以控制,就像上图中的Func_B的行为可能不好控制,或者本身就处于不可用,这时又需要测试Func_A()。就可以采用mockcpp 把Func_B打桩掉,由MOCKER规范控制函数的行为。

mockcpp helloworld

int add(int a, int b){ return a + b;

}

TEST_F(TestCaseName, TestName) { MOCKER(add) .stubs() .will(returnValue(4)); EXPECT_EQ(4, add(1, 1));

}

mockcpp 规范介绍

TEST(mockcpp detail sample)

{ MOCKER(function) / MOCK_METHOD(mocker, method) .stubs() / defaults() / expects(never() | once() | exactly(3) | atLeast(3) | atMost(3) ) [.before("some-mocker-id")] [.with( any() | eq(3) | neq(3) | gt(3) | lt(3) | spy(var_out) | check(check_func) | outBound(var_out) | outBoundP(var_out_addr, var_size) | mirror(var_in_addr, var_size) | smirror(string) | contains(string) | startWith(string) | endWith(string) )] [.after("some-mocker-id")] .will( returnValue(1) | repeat(1, 20) | returnObjectList(r1, r2) | invoke(func_stub) | ignoreReturnValue() | increase(from, to) | increase(from) | throws(exception) | die(3)) [.then(returnValue(2))] [.id("some-mocker-id")]

}

mockcpp 实例

文章来源: blog.51cto.com,作者:asdfghjkl567893,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.51cto.com/iamokay/2552030

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值