TDD 中關於mock一些理解

最近在寫代碼的UT case時注意到:函數

在寫某個類的test suit時,若是這個類既有組合(Composition),又有聚合關係(Aggregation)。ui

 

組合關係(Composition):部分和總體之間具備相同的生命週期,當總體消亡後,部分也將消亡。就像大雁的翅膀和大雁是組合關係。代碼實現時,部分類在總體類的構造函數中被構造,在析構函數中被析構。spa

聚合關係(Aggregation):部分與總體之間並無相同的生命週期,總體消亡後部分能夠獨立存在。就像大雁和雁羣是聚合關係。代碼實現時,總體類中傳入一個部分類的指針,部分類已經在總體類外被構造,於是在總體類析構的時候,部分類並無被析構。指針

 

class A對象

{生命週期

public:it

。。。。。。//member functionsio

private:function

B m_objB;//Composition,class

std:shared_ptr<IC> m_objC;//Aggregation

};

在TDD中,m_objC一般是須要mock 的,而m_objB是不能使用mock的,由於m_objB會隨着A的對象的創建而創建。

相關文章
相關標籤/搜索