TDD 中关于mock一些理解

最近在写代码的UT case时注意到:

在写某个类的test suit时,如果这个类既有组合(Composition),又有聚合关系(Aggregation)。

组合关系(Composition):部分和整体之间具有相同的生命周期,当整体消亡后,部分也将消亡。就像大雁的翅膀和大雁是组合关系。代码实现时,部分类在整体类的构造函数中被构造,在析构函数中被析构。

聚合关系(Aggregation):部分与整体之间并没有相同的生命周期,整体消亡后部分可以独立存在。就像大雁和雁群是聚合关系。代码实现时,整体类中传入一个部分类的指针,部分类已经在整体类外被构造,因而在整体类析构的时候,部分类并没有被析构。

class A

{

public:

。。。。。。//member functions

private:

B m_objB;//Composition,

std:shared_ptr<IC> m_objC;//Aggregation

};

在TDD中,m_objC通常是需要mock 的,而m_objB是不能使用mock的,因为m_objB会随着A的对象的建立而建立。

原文地址:https://www.cnblogs.com/hipposinsilt/p/6728646.html