使用Gtest可以返回被调用函数的值

Using Gtest is possible to return value of invoked function

本文关键字:调用 函数 返回 Gtest 使用      更新时间:2023-10-16

是否可以返回调用invoke后得到的值?例如,

int foo(int a, int b) {return a+b;}
class FooMock {
  MOCK_METHOD0(MockMethod, int(int a, int b));
}
void bar()
{
  FooMock mock;
  EXPECT_CALL(mock,MockMethod(_,_)).WillRepeatedly(DoAll(Invoke(foo),Return(result_of_foo)));
//Firstly foo should be invoked, secondly, result of function should be returned as result of MockMethod
}

如何使result_of_foo等于函数foo的结果?或者是否存在其他返回计算值的方法?

它比您想象的要简单。如果您Invoke一个函数,那么返回的值将是您的函数返回的值。

EXPECT_CALL(mock,MockMethod(_,_)).WillRepeatedly(Invoke(foo));