Google Mock: есть ли способ избежать RetireOnSaturation для упорядоченных ожиданий?
Я использую StrictMock
и InSequence
ожидания как это:
EXPECT_CALL(mock, handleMessage(_)).Times(AnyNumber()); // expectation #1
{
InSequence s;
EXPECT_CALL(mock, handleMessage(_)); // expectation #2
}
Желаемый эффект будет включать в себя один handleMessage()
вызов. Но ожидание № 2 автоматически удаляется после одного вызова, и дополнительные вызовы возможны благодаря ожиданию № 1. Обратите внимание, что я хотел бы, если возможно, сохранить ожидание #1 в разделе по умолчанию, потому что по умолчанию функция должна быть разрешена, но для одного конкретного теста должна быть ограничена одним вызовом. В документации сказано, что InSequence
звонки удаляются автоматически. Есть ли способ предотвратить это? Мне тоже нужно InSequence
потому что у меня много других ожиданий, близких к ожиданиям №2.
Что я пробовал: вставка EXPECT_CALL(mock, handleMessage(_)).Times(0);
незадолго до того, как ожидание № 2 не помогло - оно, похоже, не дало никакого эффекта, по-видимому, потому что, будучи в последовательности, оно удовлетворяется и удаляется на лету.