Windows C++单元测试:测试导出为dll的类

3

我有一个新的本地C++类需要测试。它是从dll中导出的(项目由1个exe和许多dll组成)

哪种方式更好:通过静态链接还是动态链接进行测试?在您的项目中通常会做什么?

问题在于,在我正在工作的项目中,将其静态编译需要很长时间。因此,我想知道测试是否值得进行大量重构。

提前致谢

2个回答

1
在我的项目中,我喜欢直接测试 DLL,这样我就可以以与实际应用程序相同的方式访问导出函数和类(与静态链接可能存在一些细微差别)。

如果这个类也在那个dll中使用呢? - direct4d
当然,它是可测试的,毕竟它并不像被内部使用那样。 - martjno

0
在工作中,我们尝试运行两组测试。
首先,我们静态链接每个函数的单元测试,无论它是导出函数还是非导出函数。这样可以通过消除在“后端”代码中发现的任何问题,在更受控制的环境中测试每个函数。
接下来,我们动态链接以测试导出函数。这样可以让我们测试导出函数,知道一切都在调用堆栈的更深层和库中的非导出函数中正常工作。
这种方法对我们很有效,因为我们在静态链接测试中发现了错误,并在找到不同的错误时进行了修复。如果我们只使用动态链接进行测试,那么我们将花费更多时间调试/修复一个复合问题,而实际上我们只需要花费时间修复两个单独的、隔离的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接