使用Visual Studio 2010 C++。我正在尝试使用单元测试,并决定尝试Google Test(gtest)。我有一个现有的项目,它编译为MFC可执行文件(我也想知道如何测试编译为DLL的项目)。我的理解是,单元测试的惯例是应该为测试创建一个新的独立项目。因此,我在同一解决方案中为我的单元测试创建了一个新项目。但是如何链接这些项目呢?我能否从我的测试项目中测试我的可执行文件项目的任意函数/方法?
传统的做法是什么?
传统的做法是什么?
我认为组织单元测试的最佳方式是:
不要更改主项目。结构应与您的测试操作独立。在我看来,将项目更改为一个大静态库和一个可执行文件并不优雅。 相反,在构建后添加一个后置操作,将所有 obj 文件汇总成一个仅由您的测试项目使用的静态库文件。
创建一个简单的测试项目,链接到您的测试框架和之前生成的静态库。
享受。
主要优点是您不需要改动要测试的项目,并且不需要将所有源代码都包含在测试项目中。
如何在Visual Studio中实现此操作,请参见此帖:Linking to multiple .obj for unit testing a console application
你可以把你想要测试的功能放入一个静态库中,该库会被链接到你的测试项目和MFC项目中;或者将你的文件放入两个项目中。第一种方法更加复杂,但第二种方法会导致所有代码都被编译两次...