如果我需要測試一個C類A與B類接口,那麼B的調用稍後會啓動對A的回調,那麼這將會是一個好的設計模式?
我需要完全控制這些回調 - 當它們執行時以及使用哪些信息。C++帶回調的假類
我使用Google Test和Google Mock作爲我的測試框架。在Google Mock的介紹中,他們解釋了difference between a fake and a mock。看來我需要一個假B類而不是模擬。
在他們的文檔,他們詳細介紹瞭如何有non-trivial implementations of B's functions,但這並沒有解決我的B控制回調的要求A.
更新:
- 只是爲了澄清:一有回調。在A調用B的函數之後的一段時間,B在A中啓動回調函數。儘管無論如何,在我的情況下,B持有指向A的指針並調用預定義的接口函數(由純虛擬類A_abstract派生)。
你是上半年似乎是解決方案,我仍然需要測試它。出於某種原因,我被鎖定了B必須觸發A的想法。至少在我的情況下,如果B或測試腳本調用A的回調,那真的沒有關係。 – Jonathan 2011-01-07 08:06:25
這就是它應該如此。只要記住,mock不必重複實際的代碼,只要被測代碼無法注意或不關心其差異即可。 – 2011-01-08 11:30:23