[英]Custom ACTION as fixture member - google test
我想在每次調用模擬函數時執行一個動作。 我嘗試使用ACTION_P來實現。 請參見下面的代碼:
ACTION_P(CompleteRegistrationWithStatus, status)
{
arg1->registrationCompleted(status);
}
期望是這樣的:
EXPECT_CALL(*mockObj, register(_)).WillOnce(CompleteRegistrationWithStatus(success));
問題是,我不得不多次使用相同的期望,只是狀態不同。 因此,我需要將期望值放在測試夾具的成員函數中,以避免代碼冗余。 但是該函數不能訪問我定義的ACTION_P,因為它不是燈具的成員。
我嘗試搜索作為夾具成員的ACTION,例如MATCHER,但無濟於事。
對可能的解決方案或替代方案有什么建議嗎? 非常感謝任何形式的幫助。 TIA!
我不確定我是否需要將期望值放入燈具的成員函數中,但是您應該能夠使用InSequence獲得所需的行為:
{
InSequence s;
EXPECT_CALL(*mockObj, register(_))
.WillOnce(CompleteRegistrationWithStatus(success));
EXPECT_CALL(*mockObj, register(_))
.WillOnce(CompleteRegistrationWithStatus(failure));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.