使用 Gtest 可以 return 调用函数的值

Using Gtest is possible to return value of invoked function

是否可以return调用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 的结果? 或者是否存在另一种 return 计算值的方法?

它比你想象的要简单。如果你 Invoke 一个函数,返回值将是你的函数 returns.

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