是否可以返回调用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的结果? 或者确实存在另一种返回计算值的方法?
答案 0 :(得分:6)
这比你想象的要简单。如果Invoke
是一个函数,返回的值将是函数返回的值。
EXPECT_CALL(mock,MockMethod(_,_)).WillRepeatedly(Invoke(foo));