一、背景 在搜狗内部对于C++项目进行单元测试,基本都是使用gtest进行的。无论是单元测试,还是接口测试我们都做了大量工作。 具体来说,就是对函数进行单元测试或接口测试,对模块进行集成测试。但是,对于模板类并没有进行测试,而是对其上层调用进行测试。 现在的问题是,对于模板类需不需要进行单元测试或接口测试?被写成模板类,说明这个类是比较通用且很多地方都在使用它,所以我认为还是有必要进行测试的。 二、如何测试单参数模板类 下面就直接进入主题:如何对单参数模板类进行测试? 有如下模板类 //不用纠结于代码细节,只为说明 template <typename E> class Queue { public: Queue() {} void Enqueue(const E& element) {} E* Dequeue() {} size_t size() const { return (size_t)123; } }; 那么使用gtest该如何对该类进行测试呢? 1构建工厂类,用于创建被测试类 code //主模板类 template <class T>