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 не помогло - оно, похоже, не дало никакого эффекта, по-видимому, потому что, будучи в последовательности, оно удовлетворяется и удаляется на лету.

0 ответов

Другие вопросы по тегам