在Google Mock测试中,可以使用EXPECT_
CA
LL检查
函数
调用和参数,还可以模拟
函数
的返回值。但是,有时候需要模拟返回void类型的
函数
,此时可以使用WillOnce(Return())。但是,当我们使用这个语句时,可能会遇到下面的问题:编译错误或运行时错误:“Return()的类型为void,无法实例化WillOnce”等等。
解决这个问题的方法是使用DoDefault或DoAll替换WillOnce(Return()),这两个
函数
都可以模拟返回void类型的
函数
。
下面是一个示例代码:
#include "gmock/gmock.h"
#include "g
test
/g
test
.h"
cl
as
s MyCl
as
s {
public:
virtual ~MyCl
as
s() {}
virtual void MyMethod(int) const {}
cl
as
s MockMyCl
as
s : public MyCl
as
s {
public:
MOCK_CONST_METHOD1(MyMethod, void(int));
TEST
(My
Test
,
Test
Method) {
MockMyCl
as
s mock;
EXPECT_CALL(mock, MyMethod).WillOnce(testing::DoDefault());
mock.MyMethod(10);
上面的代码中,我们使用了DoDefault来模拟返回void类型的MyMethod函数。