将单元测试添加到现有项目

Yor*_*les 9 c++ legacy unit-testing

我的问题与之前提出的问题非常相关,但我需要一些实用的建议.

我手里拿着"有效地使用遗留代码",当我在我正在研究的项目中阅读时,我正在使用本书中的建议.该项目是一个C++应用程序,由几个库组成,但代码的主要部分被编译为单个可执行文件.当我不得不触摸某些内容时,我正在使用googletest将单元测试添加到现有代码中.

我的问题是我如何设置我的构建过程,以便我可以构建我的单元测试,因为有两个不同的可执行文件需要共享代码,而我无法从我的"测试中"应用程序中提取代码到库.现在我已经为应用程序创建了我的构建过程,该应用程序将单元测试链接与主应用程序的构建过程中生成的目标文件相关联,但我真的不喜欢它.有什么建议吗?

Dav*_*kes 1

如果您的测试应用程序仅链接需要测试的对象文件,那么您实际上已经将它们视为一个库,应该可以将这些对象文件分组到主应用程序和测试应用程序的单独库中。如果你不能,那么我不认为你正在做的事情是一个太糟糕的选择。

如果您必须链接其他未测试的目标文件,那么这表明需要打破依赖关系,对此您有一本完美的书。我们有类似的问题并使用类似于 Vlion 建议的系统