2
是否可以使用Google Mock來限定期望值?換句話說,假設我有以下的測試夾具:是否可以在Google Mock中作出範圍期望?
class Fixture : public testing::Test
{
public:
void SetUp();
void TearDown();
ObjectUnderTest testObject;
MockObject mock;
};
現在,在SetUp()
功能,我想允許一個模擬函數調用多次初始化期間是必要的:
void Fixture::SetUp()
{
EXPECT_CALL(mock.DoStuff(_)).Times(Any());
testObject.Initialise(mock);
}
之後,我希望這個特定的期望值超出範圍,並且任何致電DoStuff()
的呼叫都會產生故障。我不能使用RetiresOnSaturation()
,因爲它永遠不會飽和!
換句話說,如果我有以下測試案例:
TEST_F(Fixture, DoesWhatItsSupposedTo)
{
EXPECT_CALL(mock, DoStuff(Eq(3)));
testObject.DoSomething(mock);
}
我想這失敗,如果DoSomething()
電話DoStuff(4)
模擬對象上。使用gmock默認行爲(這適用於大多數情況),它將首先檢查第二個不匹配的期望;然後它會檢查SetUp()
的期望值,它們將匹配並通過。
有誰知道這是可能的嗎?