2010-09-16 28 views
3

我有一个新的本机C++类,我想测试。它是从一个DLL导出(项目包括1 exe和很多dll)Windows C++单元测试:测试DLL导出类

更好的方法是:通过静态链接或通过动态链接来测试它? 你通常在你的项目中做什么?

问题是,在我正在处理的项目中,需要花费很多时间才能使其静态编译。所以我想知道测试是否值得大量重构。

在此先感谢

回答

1

在我的项目,我想直接测试DLL,所以我的访问正好在相同的方式将在实际应用中的工作导出的函数和类(有可能是与静态链接的细微差别)。

+0

如果该类也用于该dll,该怎么办? – direct4d 2010-09-16 07:08:58

+0

无论如何它都是可测试的,当然,并不像内部使用它 – martjno 2010-09-17 07:34:12

0

在工作中,我们尝试运行两组测试。

首先,我们静态链接每个函数的单元测试,无论它是否是导出函数。这让我们通过消除我们在“后端”代码中发现的任何问题,在更受控制的环境中测试每个功能。

接下来,我们动态链接以测试导出的函数。这让我们可以测试导出的函数,因为知道所有东西都在调用堆栈中进一步运行,并进入库中的非导出函数。

这种方法对我们来说效果很好,因为我们发现了在运行动态链接测试时发现不同错误之前我们修复的静态链接测试中的错误。如果我们只使用动态链接进行测试,那么我们将花费更多的时间来调试/修复复合问题,而不是我们实际花费在修复两个单独的孤立问题上。