使用CppUnit测试MFC应用程序
这里有一份样例工程(Visuao Studio.Net 2003)。
示例代码下载:TestExample.zip
关于测试工程的建立可以参阅vckbase 的文档库的一篇文章
http://www.vckbase.com/document/viewdoc/?id=1258
首先说一下用CppUnit进行测试的原理。被测试的语句放在CPPUNIT_ASSERT…这样的语句里。测试工程构建程序后,运行测试程序时将检查CPPUNIT_ASSERT里的语句将被执行。一般来说要测试的代码通常不来自于测试工程,这也是我的文章里建立了两个工程的原因。
通常的做法是将要测试的工程生成库文件(.lib),然后链接到测试工程中。要注意的就是工程属性的设置,静态库的一些属性一定要与测试工程一致。以Visual Studio的工程为例说明以下,使用其它IDE生成的工程类似。
使用方法:使用配置管理器设置当前的生成配置为”Test”,依次生成MainPrj和TestPrj工程即可。

图一 设置配置管理器
Test配置下的一些设置。
解决方案下有两个工程,分别为MainPrj和TestPrj(主工程和测试工程)。
主工程:
改为生成静态库文件
生成路径为”../TestPrj”
链接生成选项为”$(OutDir)/$(ProjectName).lib”
测试工程:
附加包含目录添加”../contrib/inc”
附加库目录添加”../contrib/lib”
附加库添加cppunitd.lib和MainPrj.lib
如果使用.Net 2003或者更低的版本的Visual Studio开启动态类型识别。
补充:
如果想测试类的私有方法和保护方法可以在主工程相应文件里添加测试工程里的类的友元。
class Example { public: friend class TestExample; .... };
Recent Comments