2017-07-07 198 views
0

我有Class A,它有另一個Class B的實例。我已經完成了對Class B獨立代碼的單元測試。對於其他操作,Class A調用Class B的方法,使用其他類進行一些處理,然後調用Class B的方法。嘲笑單元測試類

我的問題是我如何模擬Class A的依賴和完整的單元測試Class B?如果Class B使用Class A的實例,我可以模擬Class A並完成任務。但是,在我的情況下,Class A使用Class B的實例。

如何在這種情況下模擬單元測試?

回答

0

這取決於你如何設計你的class Aclass B

如果他們一直在精心設計的,那麼你可以很容易地爲interface IB模擬實現 - B的接口 - (使用GoogleTest & GoogleMock),然後使用在class A單元測試這種模擬實現。要了解如何使用GoogleMock,請查看GoogleMock CheatSheet

否則,您可能遇到類似於Google Mock: Mock private variable member that is instantiated in target class's constructor的情況,那麼您可能需要使用一些preprocessor directives來破壞您的class A