使用 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));
是否可以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));