C++ C++;模板测试
这一定是个很平常的问题,但我没发现。你能指出我的正确方向还是描述你做什么来确保你的C++模板都被测试了? 在新项目中,所有代码都必须通过单元测试进行测试,以及其他措施,如代码审查。现在开发的过程可以确保没有未经测试的代码 <>对于C++模板,我看到两种可能性:C++ C++;模板测试,c++,unit-testing,templates,C++,Unit Testing,Templates,这一定是个很平常的问题,但我没发现。你能指出我的正确方向还是描述你做什么来确保你的C++模板都被测试了? 在新项目中,所有代码都必须通过单元测试进行测试,以及其他措施,如代码审查。现在开发的过程可以确保没有未经测试的代码 对于C++模板,我看到两种可能性: 不允许使用模板,在持续集成系统中添加一个检查,该系统对所有源执行“grep模板”,并在发现问题时退出。我不想朝那个方向走 需要显式的模板实例化。模板类和函数的非内联部分必须在源文件中实现,而不是在头文件中实现,并显式实例化。Review将检查
template <class T>
class klass {
...
method1()
};
模板
克拉斯班{
...
方法1()
};
我知道我需要模板实例化,比如说,klass
,或者klass
,我对这些实例化进行了单元测试
我想防止的是,一些模块开发人员还使用了从未测试过的klass
我需要显式的模板实例化来实现这一点。问题是,如果您将uint16\u t
,uint32\u t
替换为客户机模块定义的类,例如一些由模块后验证定义的数据类,它很快就会变得混乱
具体地说,让人感觉混乱的是需要在库源文件klass.cpp中包含客户端头,以便能够实例化模板。我并不担心在单元测试中包含这些头文件。在单元测试中,包含测试中的头是标准的业务
有更好的解决办法吗?或者,我必须生活在混乱中吗?难的是,如果你考虑SimeAE,在模板类中的函数(由于某些缺省可构造的需求),对于这个类的一些实例化……我不理解这个问题,模板化的代码可以像其他部分一样进行单元测试。@Jarod42:谢谢你给我们提示了一些其他的东西consider@Melkon:是的,我可以像测试任何其他类一样测试任何模板实例化。如何测试已识别的模板实例化不是我要解决的问题。在编辑1中,我试图让自己更清楚,最困难的部分是,如果考虑到模板类中的sFIFE、无效函数(由于某些缺省可构造性的要求),对于该类的一些实例化……我不理解这个问题,模板化的代码可以像其他部分一样进行单元测试。@Jarod42:谢谢你给我们提示了一些其他的东西consider@Melkon:是的,我可以像测试任何其他类一样测试任何模板实例化。如何测试已识别的模板实例化不是我要解决的问题。我试图在编辑1中让自己更清楚