簡體   English   中英

Custom ACTION作為Fixture成員-Google測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM