谷歌模拟:有没有办法避免RetireOnSaturation的订单期望?

时间:2014-09-28 07:44:51

标签: c++ unit-testing mocking googlemock

我正在使用StrictMockInSequence这样的期望:

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);并没有帮助 - 似乎没有任何效果,大概是因为,在一个序列中,它已经满足并且已经退休苍蝇。

0 个答案:

没有答案