有没有办法模拟被调用函数的返回值?

时间:2017-05-31 06:34:46

标签: c++ unit-testing mocking code-coverage googlemock

class A
{
    public:
        int ret1();
};
int ret()
{
    printf("Returning 5\n");
    return 5;
}

int A::ret1()
{
    int iRet = 10;
    printf("Inside ret1\n");
    iRet = ret();
    if (iRet == 5)
    {
        printf("Original ret is called\n");
    }
    else if (iRet == 100)
    {
        printf("This is mocked function call\n");
    }
    else
    {
        printf("Opps! This should not happen\n");
    }
    return iRet;
}

在上面的ret1函数中,我想模拟ret函数的返回值。通常ret会返回5,但在模拟后我们会说ret将返回100,因此ret1会打印"This is mocked function call"

是否有任何工具可以完成上述情况。所以到目前为止我知道cmocka可以涵盖C语言的上述情况但是对于C ++有没有可用的工具?

在链接中Mocking free function看起来不像回答我的问题。

0 个答案:

没有答案