我正在使用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。
我尝试过:在期望#2之前插入EXPECT_CALL(mock, handleMessage(_)).Times(0);
并没有帮助 - 似乎没有任何效果,大概是因为,在一个序列中,它已经满足并且已经退休苍蝇。