避免在Google Mock中多次匹配.WillOnce

UXk*_*EZ7 17 c++ tdd googlemock

我有一个模拟对象设置,如下所示:

MyObject obj;
EXPECT_CALL(obj, myFunction(_))
.WillOnce(Return(1))
.WillOnce(Return(1))
.WillOnce(Return(1))
.WillRepeatedly(Return(-1));
Run Code Online (Sandbox Code Playgroud)

有没有办法不必重复.WillOnce(Return(1))三次?

Vla*_*sev 27

using testing::InSequence;

MyObject obj;

{
  InSequence s;
  EXPECT_CALL(obj, myFunction(_))
      .Times(3)
      .WillRepeatedly(Return(1));
  EXPECT_CALL(obj, myFunction(_))
      .WillRepeatedly(Return(-1));
}
Run Code Online (Sandbox Code Playgroud)