0
我有一個單元測試代碼,我有一個模擬函數foo
。當我使用ON_CALL構造來指定動作時,它不執行my_action,而是執行foo。ON_CALL不起作用,但EXPECT_CALL起作用
ON_CALL(my_mock, foo(my_matcher()))
.WillByDefault(DoAll(my_action(), Return(0)));
但是當我做EXPECT_CALL,它的工作原理。在我的情況下,foo()只會被調用一次。我試圖看看它可能會有所不同。但谷歌搜索或搜索stackoverflow沒有幫助。下面是工作的EXPECT_CALL:
EXPECT_CALL(my_mock, foo(my_matcher()))
.WillOnce(DoAll(my_action(), Return(0)));
我不明白他們是如何給予相同的my_matcher和my_action不同。
謝謝,但我的問題沒有回答。在這兩種情況下,期望都會得到滿足,因爲我使用相同的輸入進行相同的單元測試。 ON_CALL如何不導致my_action被執行,而EXPECT_CALL呢? – Gops
正如我所說的,'ON_CALL'只能在預期通過呼叫完成時運行。如果你沒有定義'EXPECT_CALL',那麼沒有什麼可以實現的。 – VladLosev