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的对象的创建而创建。

相关文章
相关标签/搜索